【问题标题】:Run a bash command until diff between two files is non-empty运行 bash 命令直到两个文件之间的差异非空
【发布时间】:2023-01-08 13:42:40
【问题描述】:

我有一个程序的两个版本,比如:normalProgrambruteProgram

我有一个用于这两个的输入生成器:programGenerator

现在我想这样做:

  • ./programGenerator的输出放入input.txt./programGenerator > input.txt
  • input.txt重定向为normalProgram的输入:cat input.txt | ./normalProgram
    • ./normalProgram的输出放入op1.txt(cat input.txt | ./normalProgram) > op1.txt
  • ./bruteProgram 的类似内容:
    • (cat input.txt | ./bruteProgram) > op2.txt
  • 现在我想比较op1.txtop2.txtdiff op1.txt op2.txt

整个命令将如下所示:

./programGenerator > input.txt &&
(cat input.txt | ./normalProgram) > op1.txt &&
(cat input.txt | ./bruteProgram) > op2.txt &&
diff op1.txt op2.txt

所以这是一次性命令。

我想运行它直到 diff op1.txt op2.txt 给出非空响应。

我尝试将 diff op1.txt op2.txt 作为 until 的条件(或 while,只是为了检查条件是否正确)

但这没有用,我得到一个错误,那不是一个正确的条件。

例子:

while [diff normalOp.txt bruteOp.txt]
do
echo "hello"
done

这给了我错误:

zsh: bad pattern: [diff

【问题讨论】:

    标签: bash zsh


    【解决方案1】:

    我只需要从条件中删除方括号:

    while diff normalOp.txt bruteOp.txt  
    do
    echo "hello"
    done
    

    这开始起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-31
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      相关资源
      最近更新 更多