2012-04-02 9 views
0

私はBashスクリプトで本当に奇妙な問題に直面しています。 私のスクリプトは、基本的には、特定の行にランダムな "コマンドが見つかりません"というエラーを投げますが、常に同じ "コマンド"ではありません。次に例を示します。コマンドの一部だけを取るbashスクリプトの "command not found"のランダムな振る舞い

./myscript.sh: line 193: e: command not found 
    ./myscript.sh: line 194: iles: command not found 
    ./myscript.sh: line 194: ge_files: command not found 

そして、ここではincriminated行がされている

184 for SERVER in `echo $SERVERS` ; do 
185 - 192 Do some stuff... 
193 done 
194 merge_files 

だから問題があると思われる(merge_filesは、スクリプト内で以前に宣言されている機能です。)それは時々それらの行を分割するのですか?それは本当にランダムではないように見えます。ちょうど時々(スクリプトの入力に間違っていると思いますか?ログを解析しています)

誰もこれに直面しましたか?

+2

問題を再現する可能な限り小さなスクリプトを作り出そうとします。 –

+3

実行中にスクリプトを編集(および保存)していますか? –

+1

シェルデバッグを有効にします。つまり、 'set -vx'を実行すると、変数の値が表示されます。また '$ SERVERS'のソースがファイルからのものであれば、そのファイルはMSWindows/DOS上に作成されていますか?もしそうなら、 'dos2unix'を使って問題を引き起こしているかもしれない '^ M \ chars'を削除してください。がんばろう。 – shellter

答えて

0

あなたのコマンド(ffmpeg?)はコマンドを切り捨てる標準入力から読み込むかもしれないので、その一部しか見えません。コマンドに< /dev/nullを追加して、これが問題であるかどうかを確認してください。

+0

いいえ、私のすべてのコマンドはかなり簡単です。他の.shスクリプトを呼び出すのは、ほとんどがファイルのリストを取得するための「見つける」ものです。私は/ dev/nullを試してみるつもりですが、ありがとう! –

関連する問題