みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

#!/bin/bash のラインでエラー発生

お世話になります。 Linux初心者です。

下記のような***.shを作成し、./***.sh で実行すると、/bin/bash^M bad interperter: No such file or directory
というエラーが発生してしまいます。
原因として考えられる事をご教授頂けないでしょうか?
---------------------------------------
#!/bin/bash
PATH=/usr/local/bin:/bin:/usr/bin
for conf in /etc/webalizer*.conf
do

---------------------------------------

投稿日時 - 2007-01-20 00:42:55

QNo.2680110

困ってます

質問者が選んだベストアンサー

Windowsでは、CR(Carriage Return)+LF(Line Feed)の2バイトで改行コードを表します。
Linuxを含むUNIX系OSでは、LFの1バイトで改行コードを表します。
そのため、Windowsでの改行コードのままLinuxに転送すると、Windowsの改行コードのCR+LFのCRがLinuxに置いては
>/bin/bash^M bad interperter: No such file or directory
のようにゴミ(^Mの部分がCR)として付くため、「/bin/bash^M」というコマンドを実行しようとしますが、そんなコマンドはないですから質問にあるようなエラーになります。

Windowsで改行コードをLFで保存してくれるエディタを使用するとか、FTPで転送する際で改行コードを変換してくれるWindowsのFTPソフト(クライアントソフト)を使用するとか、Linux側でnkfあたりで改行コードを変換するとかすれば質問にあるエラーはなくなると思いますよ。

投稿日時 - 2007-01-20 02:07:44

お礼

丁寧な解説ありがとうございます。
先ほど実験して、解決しました。

Linux知ってる人からすればあほみたいな質問だったのだと思うと少し恥ずかしいです。 もう少し勉強します。

投稿日時 - 2007-01-20 23:58:38

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

error message を見て
^M が CR であることに気づかないことが
私は、悲しいです。

http://ja.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange

投稿日時 - 2007-01-20 05:46:39

ANo.1

Wr5

そのスクリプトはどのように作成したのでしょうか?

Windowsのエディタで書いて、FTPのバイナリモードで転送した。
とかいうことはありませんか?

投稿日時 - 2007-01-20 00:51:08

補足

ファイルはWindowsで作成しました。
ただ、Linux上でviで見ても、コメントアウト部分以外ちゃんと見れますので、文字コードとかの問題はないかと思っていました。

投稿日時 - 2007-01-20 01:20:11

あなたにオススメの質問