- ベストアンサー
#!/bin/bash でエラー発生!原因と対処法を教えてください
- Linux初心者が、./***.sh を実行すると /bin/bash^M bad interperter: No such file or directory というエラーが発生します。原因と対処法を教えてください。
- Linux初心者が、./***.sh を実行すると /bin/bash^M bad interperter: No such file or directory というエラーが発生します。エラーの原因と対処法について詳しく教えてください。
- Linux初心者が、./***.sh を実行すると /bin/bash^M bad interperter: No such file or directory というエラーが出ます。どうしたらエラーが解消されるのか教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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あたりで改行コードを変換するとかすれば質問にあるエラーはなくなると思いますよ。
その他の回答 (2)
- cynthia4
- ベストアンサー率51% (186/358)
error message を見て ^M が CR であることに気づかないことが 私は、悲しいです。 http://ja.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange
- Wr5
- ベストアンサー率53% (2173/4061)
そのスクリプトはどのように作成したのでしょうか? Windowsのエディタで書いて、FTPのバイナリモードで転送した。 とかいうことはありませんか?
補足
ファイルはWindowsで作成しました。 ただ、Linux上でviで見ても、コメントアウト部分以外ちゃんと見れますので、文字コードとかの問題はないかと思っていました。
お礼
丁寧な解説ありがとうございます。 先ほど実験して、解決しました。 Linux知ってる人からすればあほみたいな質問だったのだと思うと少し恥ずかしいです。 もう少し勉強します。