#!/bin/bash でエラー発生!原因と対処法を教えてください

このQ&Aのポイント
  • 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 というエラーが出ます。どうしたらエラーが解消されるのか教えてください。
回答を見る
  • ベストアンサー

#!/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 ~ ---------------------------------------

noname#58274
noname#58274

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

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

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あたりで改行コードを変換するとかすれば質問にあるエラーはなくなると思いますよ。

noname#58274
質問者

お礼

丁寧な解説ありがとうございます。 先ほど実験して、解決しました。 Linux知ってる人からすればあほみたいな質問だったのだと思うと少し恥ずかしいです。 もう少し勉強します。

その他の回答 (2)

  • cynthia4
  • ベストアンサー率51% (186/358)
回答No.3

error message を見て ^M が CR であることに気づかないことが 私は、悲しいです。 http://ja.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

そのスクリプトはどのように作成したのでしょうか? Windowsのエディタで書いて、FTPのバイナリモードで転送した。 とかいうことはありませんか?

noname#58274
質問者

補足

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

関連するQ&A

  • CentOSでアップデート中に再起動してエラー発生

    現在CentOS5を使用しているのですがアップデート途中に再起動をしてしまった為、起動中にエラーが発生して止まってしまいます。 復旧方法があれば教えて頂きたいのですが・・・エラーの内容は bash: dircolors: command not found bash: /usr/bin/id: No such file or directory bash: [: =: unary operator expected bash: /usr/bin/id: No such file or directory bash: [: =: unary operator expected bash: /usr/bin/pkg-config: No such file or directory と表示されます、宜しく御願いします。

  • Webalizerの設定がうまくいきません

    今現在Webalizerというソフトを動かそうとしてるのですが、Webalizerをeeエディターで編集した後に /usr/local/bin/ja-webalizer -c /usr/local/etc/webalizer.conf(実際は一行です) を実行したら下記のエラーがでました。 No valid records found! これはレコードが見つからない。と書いてあるのですが、どこを修正したらWebalizerが動きますか? 何か知っている方教えて下さい。宜しくお願いします。

  • PostgreSQLをCentOS5にインストールしました。

    閲覧有難うございます。 質問内容なのですが、Postgresqlをインストールしたのですがpostgresql.confとpg_hba.confが見つかりません。 OSはCentOS5です。 インストール方法は以下の手順で行いました。 # /usr/sbin/adduser postgres # chown postgres:postgres /usr/local/pgsql # mkdir /usr/local/src/postgres-8.2.6 # chown postgres:postgres /usr/local/src/postgresql-8.3.7 # su - postgres # cd /usr/local/src # tar xfz /usr/local/src/postgres-8.2.6.tar.gz # cd /usr/local/src/postgres-8.2.6 # ./configure # make # make install また、 [root@ ~]# su - postgres -bash:  LD_LIBRARY_PATH=/usr/local/pgsql/lib: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  PATH=/usr/local/pgsql/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  MANPATH=/usr/local/pgsql/man:: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  export: command not found -bash:  PATH=/usr/local/pgsql/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  MANPATH=/usr/local/pgsql/man:: そのようなファイルやディレクトリはありません -bash:  export: command not found [postgres@ ~]$ のようなエラーがはかれるようになりました。 どうか皆様のお力をお貸しください。

  • シェル エラーについて

    Linux programming 3rd Editionと言う本にサンプルプログラムがあるんですけど、試しに使ってみたら /bin/sh^M: bad interpreter: No such file or directory と出てきました  通訳すると”下手な通訳:このファイルまたはディレクトリは見つかりません” /bin/sh^Mの^Mってなんですか?

  • shで、パスがとおりません

    シェル内の リダイレクトのパスが通らない原因は何でしょうか? ◆シェル実行時のエラー bash: ./bb.sh: bad interpreter: No such file or directory ◆シェル(PostgresqlへCSVデータ取込) #!/bin/sh /usr/local/pgsql/bin/psql -d swan2 -c "copy abctbl_wk from stdin using delimiters ',' with null as ''" < ./csv/abcTBL.csv

  • PHPのCLI(コマンドライン)について

    PHPのCLI版について教えていただきたいことがあります。 まず、前提条件として、 OS:Redhat Linux 9.0 PHP:4.4.1 WEB:Apache2.0 MAIL:qmail となっています。 確認事項としてphpのパスを確かめるために、SSHなどのコマンドラインから、 (A)のようにパスを指定して実行した場合、正常に処理できます。 (A) [/ ]# /usr/local/bin/php <?php phpinfo(); ?> 実行→phpinfoの内容が表示される 次に、qmailの転送機能を利用し、受信したメールを自動的に前述の test.phpに渡すとmaillogに以下のようにログが残っています。 delivery 1488: deferral: /bin/sh:  /var/www/sample/test.php:  /usr/local/bin/php :  bad interpreter:  No such file or directory test.phpのパスは正しく設定されており、 [/ ]# /usr/local/bin/php /var/www/sample/test.php とした場合、正しく読み込みます。 また、test.phpの1行目には #!/usr/local/bin/php と記述してあり、もう一台のサーバー(Redhat Linux 2.1AS)では 正しく動いております。 実行できない原因を調べる手段として、 ・この設定を確認 ・このコマンドを実行 など、まず何をチェックすればいいのか 教えていただけると助かります。 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • bad interpreterで、シェルが使えません(T_T)

    RedHat9ではよく以下のような胃の痛いような エラーがでます。 rootでシェルが実行できないのですが、 どうすれば実行できるでしょうか? ■1.shというシェルファイル #!/bin/sh /bin/touch 1 ■1.shを実行するとエラーになります。。 # ./1.sh : bad interpreter: そのようなファイルやディレクトリはありません ■cronでも動きません。。 /bin/bash: 1.sh: /bin/sh: bad interpreter: No such file or directory

  • パス(PATH)の設定ファイルについて

    OSはRed Hat Linux 9 を使用しております。 また、シェルはbashを使用しております。 ユーザがシステムにログインする際は、通常ですと /etc/profile ~/.bash_profile ~/.bash_login ~/.profile ファイルを読込、パス(PATH)の設定を行うと思いますが、 sshでrootユーザでシステムにログインした際は、 「echo $PATH」の結果は以下でした。 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/sbin su -で再度rootユーザでログインした際、もしくは、他ユーザからsu -でログインすると 「echo $PATH」の結果は以下でした。 /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/sbin ログインの仕方でパス(PATH)に違いがあります。 また、「/usr/local/bin」をパス(PATH)として設定している記述が 上記ファイルに見当たりません。 http://sakaguch.com/PastBBS/0038/B0018808.html http://oshiete1.goo.ne.jp/kotaeru.php3?q=800405 等のサイトを参考に、以下ディレクトリ配下を確認しましても /etc/profile.d /etc/rc.d/init.d /etc/rc.d/rc3.d 「/usr/local/bin」をパス(PATH)として設定している記述が 見当たりません。 ログインの仕方でパス(PATH)に何故違いがあるのか、 また「/usr/local/bin」をパス(PATH)として設定している記述がある ファイルをご存知の方ご教授頂きたく思います。 宜しくお願いします。

  • わからないエラーが出て困っております。

    Mac OS X 10.4.11を使っております。 /bin/sh: line 1: /usr/bin/dscacheutil: No such file or directory というエラーが出る場合はどうしたらいいのでしょうか...本当に全然わからない初心者で困っております。

    • ベストアンサー
    • Mac
  • bashが評価されない

    mac標準の古い/bin/bashならスクリプトしっかり動きます 新しい/usr/local/bin/bashではほとんど動きません /usr/local/bin/bash -x デバッグモードで確認すると最初と最後のみ評価されてスクリプトのほとんどが評価されていません 単純な100行程のスクリプトなのに原因がわかりません 何故評価されないのか考えられる要素はありますか