2017-01-08 9 views
0

私は初めてbashを使用しています。コマンドとして「統計」取ることになっているコードを書いたが、私は次のエラーを取得保管私のコマンドラインで「統計」を使用するたびに:bash "コマンドが見つかりません" - 私のPATHが間違っています

bash: stats: command not found 

私の周りGoogleで検索し、多くの人が言っていますこのエラーは通常PATHの問題に関連しています。 "エコーの$ PATH" を実行すると、以下の結果が得られます。

/bin:/sbin:/usr/local/bin:/usr/bin:/usr/local/apps/bin:/usr/bin/X11:/nfs/stak/students/z/myname/bin:. 

は、私は私のプログラムが

#!/bin/bash 

で起動確認しました間違って私のPATHですか?もしそうなら、私はそれをどのように修正するのですか?そうでなければ、私は何を調べなければならない?あなたの時間と助けに感謝します。

+1

実際には 'stats'コマンドは存在しますか?代わりに 'stat'を(' s'なしで)意味しないのですか? –

+0

スクリプトの名前はstatsと呼ばれます –

+0

スクリプトはどこにありますか? ( '' pwd'を実行してください)。実行可能な権限を持っていますか? (スクリプトが存在するフォルダに 'ls -al'を実行します)。 – ffledgling

答えて

0

PATHが妥当と思われます。 PATH問題はこのようなエラーの一般的な原因ですが、唯一の問題ではありません。

エラーメッセージ ":そのようなファイルまたはディレクトリがありません"は、スクリプトファイルにunix形式(改行のみ)の代わりにDOS/Windows形式の行末(キャリッジリターンと改行で構成される)があることを示しています。 Unixプログラム(シェルを含む)は、行の一部に対して改行を誤ってしまい、大規模な混乱を招きます。

この場合、shebang行は "#!/ bin/bash^M"( "^ M"は改行を示します)と見なされ、 "/ bin/bash^M"それを見つけることができず、 "/ bin/bash^M:No such file or directory"のようなものを表示します。キャリッジリターンは端末を行頭に戻すので、 ":そのようなファイルやディレクトリは"/bin/bashの部分の上に印刷されるので、それだけです。

dos2unixプログラムをお持ちの場合は、これを使用してUNIXスタイルの行末に変換できます。そうでない場合は、さまざまな代替変換ツールがあります。しかし、あなたはまた、ファイルがWindows/DOSフォーマットを持っている理由を理解する必要があります:それをWindowsエディタなどで編集しましたか?何が原因であれ、Windows/DOS形式のファイルはほとんどのUNIXプログラムで問題を引き起こすため、再度発生しないようにする必要があります。

1

PATHに問題がある可能性がありますが、権限の問題です。試してみることもいくつかあります。統計は統計があるディレクトリに、現在のディレクトリ、ディレクトリ変更(CD)していないとの統計が正しく実行される場合は、スクリプトがOKである、少なくともことを知っている

bash stats 

を行う場合

1) 。それ以外の場合は、スクリプト自体を見てください。これは

bash: ./stats: Permission denied 

を与える場合

2)次に、あなたはアクセス許可の問題を抱えている

./stats 

でスクリプトを実行するようにしてください。

chmod a+rx stats 

を実行して再試行してください。注:a + rxは多少幅があります。いくつか提案するかもしれない

chmod 755 stats 

より良い選択です。ヒント:コメントから、これはあなたの問題の1つであることがわかります。

3)ディレクトリの名前から、ファイルがNFS上にあるという印象を受けます。したがって、それは 'noexec'としてマウントされる可能性があります。つまり、そのマウントからファイルを実行することはできません。試してみてください:

cp stats /tmp 
chmod 700 /tmp/stats 
/tmp/stats 

4)統計情報の絶対パス名を確認してください。まだstatsと同じディレクトリにいる場合は、

pwd 

このディレクトリがPATHに存在するかどうかを確認してください。そうでない場合は、追加します。

export PATH=$PATH:/nfs/stak/students/z/myname/344 

ともう一度統計情報を試してください。

関連する問題