如何在if循环中使用两个命令退出代码进行测试?

如何在if循环中使用两个命令退出代码进行测试?

我想在 if 循环中测试两个命令存在代码,但没有任何额外的管道

现在,我可以使用单个命令,例如。

if cmp -s file1 file2
then
....

但如何添加两个测试呢?这样可以吗:

if cmp -s file1 file2 && test -f file3
then
...

以下对我不起作用:

if [ $(cmp -s file1 file2) -a $(test -f file3) ]
then
...

答案1

if cmp -s file1 file2 && test -f file3
then
...

正如所写,如果两个测试中的任何一个失败,“if”就会失败,如果两个测试都成功,“if”就会成功,这应该是您想要的。如果您需要第二个测试的输出,则不应这样做,因为如果第一个测试失败,它将不会运行。否则这似乎是一个不错的策略。

相关内容