【发布时间】:2023-01-08 13:42:40
【问题描述】:
我有一个程序的两个版本,比如:normalProgram 和bruteProgram。
我有一个用于这两个的输入生成器: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.txt和op2.txt:diff 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
【问题讨论】: