2010-10-19 76 views
2

請拒絕告訴我不要使用c-shell的衝動。如果發現差異失敗(c-shell)

我在寫一個c-shell腳本,我需要在兩個文件(在腳本中生成)之間運行差異。如何運行diff並返回其狀態(如果失敗,則返回1,否則返回0)?

回答

3

在C shell中,您可以使用變量$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 
+0

這是體面的。這是否與預期不符? – 2010-10-19 07:28:02