在命令行中我可以使用以下方法比较两个命令的输出
$ diff <(cmd1) <(cmd2)
但如果我把它放在 shell 脚本中
$ sh do_two_comands_diff.sh
这是行不通的
$ diff <(ls) <(ls -a)
0a1,2
> .
> ..
$ cat > test_diff.sh
diff <(ls) <(ls -a)
^D
$ sh test_diff.sh
test_diff.sh:1: test_diff.sh: Syntax error: "(" unexpected
我尝试使用 $() 代替 (),但没有成功。我知道在 shell 中,有时需要以不同于控制台的方式完成某些事情,但在这里我一点头绪都没有。有人能指点我到正确的链接,让我了解如何在 shell 中正确地完成这些事情以及为什么会发生这种情况吗?
页。
答案1
确保在脚本中使用与在命令行上使用相同的解释器,方法是在前面添加
#!/bin/bash