请不要急着告诉我不要使用C-Shell。
我正在编写一个C-Shell脚本,需要在两个文件之间运行diff(在脚本中生成)。如何运行diff并返回其状态(如果失败,则返回1,否则返回0)?
在C shell中,可以使用变量 $status 以获取命令的退出状态。
$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