代码之家  ›  专栏  ›  技术社区  ›  Amir Rachum

如果发现diff,则失败(c-shell)

  •  3
  • Amir Rachum  · 技术社区  · 14 年前

    请不要急着告诉我不要使用C-Shell。

    我正在编写一个C-Shell脚本,需要在两个文件之间运行diff(在脚本中生成)。如何运行diff并返回其状态(如果失败,则返回1,否则返回0)?

    1 回复  |  直到 14 年前
        1
  •  3
  •   codaddict    14 年前

    在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