3

c-shell を使うなと言いたい衝動を抑えてください。

私は C シェル スクリプトを作成しており、(スクリプトで生成された) 2 つのファイル間の差分を実行する必要があります。diff を実行してそのステータスを返すにはどうすればよいですか (失敗した場合は 1 を返し、失敗した場合は 0 を返します)。

4

1 に答える 1

3

C シェルでは、変数$statusを使用してコマンドの終了ステータスを取得できます。

% echo 'hi' > foo
% echo 'ho' > bar
% diff foo foo
% echo $status
0
% diff foo bar > /dev/null
% echo $status
1

スクリプトでは、次のようなことができます。

set f1=foo
set f2=bar
diff $f1 $f2 > /dev/null                   
if ($status == 0) then
        echo 'no diff'
else
        echo 'diff'
endif
于 2010-10-19T06:41:19.220 に答える