1

コマンドラインからシェルスクリプトを実行しようとしています。

私のスクリプトは次のようになります。

#!bin/bash

echo hello

このソース ./abcd.sh を実行しようとすると、このエラーが発生します。

"' is not a typo you can run the following command to lookup the package that contains the binary:
    command-not-found 
: command not found
hello
"

「echo hello」の前に空の行があると何か問題が発生する前に、これを見たことはありませんか? 他の誰かがこのようなことに遭遇したかどうか疑問に思っていました。

4

5 に答える 5

2
#!bin/bash

する必要があります

#!/bin/bash

または bash がインストールされている場所 (これは を実行して見つけることができますwhereis bash)。

プログラムは、bash を使用して呼び出された場合、つまり、正常に動作するはずですbash ./abcd.shが、直接実行された場合./abcd.shは、hashbang 行が重要になります。

于 2013-06-10T23:26:13.560 に答える
0

デバッグ オプションを指定してスクリプトを実行し、実際に失敗している行を確認します。

bash -x abcd.sh

注: この場合、Shebang行はコメントとして扱われるため、スクリプトの残りの部分が正しければ、正しく実行されます。

$ bash -x abcd.sh
+ echo hello
hello
于 2013-06-10T23:26:14.527 に答える
0

ファイルにBOMがないことを確認してください Windows で Notepad++ を使用してスクリプトを編集するときに同じ問題が発生しました。必ず「BOMなしのUTF-8」に変換してください。

于 2016-02-21T17:48:54.977 に答える
0

, を引用符で囲みecho 'hello'ます。echoコマンドとの間に改行があるようで、helloコマンドとして「hello」を実行しようとしています。

ハッシュバン行は である必要があります#!/bin/bashが、ハッシュで始まる行はコメントとして解釈されるため、それを台無しにしても問題ありません。

于 2013-06-10T23:23:25.763 に答える