2017-01-26 4 views
1

ファイル名の末尾に「〜SAC」がある各スクリプトを実行しようとしています。そのような目的のために、私は以下のコードのように "foreach"を使ってtcシェルスクリプトを書いた。tcshスクリプトを実行しているときに '未定義の変数'エラーが発生しました

ただし、./run.tcshと入力して実行すると、 "tmpdir:未定義変数"のみが表示されます。 ( 'tmpdir'は私のコードを適用したいすべてのファイルを持つディレクトリです) どうすればこの問題を解決できますか?

#!/bin/tcsh 

set inputdir=tmpdir 
foreach sacfile(`find $tmpdir -name '*.SAC'`) 
    echo "processing $sacfile" 
    classic_LR $sacfile 
end 

私の実行ファイルの名前は 'classic_LR'で、次の入力形式で実行されます。

./classic_LR sacfile 

ここで 'sacfile'はclassic_LRを適用するファイルの名前です。

答えて

2

変数はinputdirで、tmpdirではありません。

だから、私はメッセージ "未定義〜" は、それを編集した後に表示されていないことを確認

foreach sacfile(`find $inputdir -name '*.SAC'`) 
+0

foreach sacfile('find $tmpdir -name '*.SAC'') 

を変更。しかし、単に "Usage:classic_LR filename.sac output.txt"というメッセージを返します。何か不足していますか?コードを編集して実行するにはどうすればよいですか?私のコードで出力を印刷するためにtxtファイルを追加する必要がありますか? –

+0

これは別の問題、つまりあなたのCコードに固有の問題のようです。 – codeforester

+0

私は自分自身をチェックします。 –

関連する問題