shell 脚本中的多个 if 条件

问题描述 投票:0回答:1

我正在使用 shell 脚本并尝试在文件中搜索两个字符串,如果它们通过,那么我需要打印“PASS”,如下面的代码所示,但在执行下面的代码时出现问题。

#!/bin/bash
if [[ (grep -q "Build of target from_sms.compfiles.xf : PASS" failed.log) && (grep -q "All tests fine" test.log) ]]; then
  echo "PASS"
fi
bash shell sh
1个回答
0
投票

您不需要在 grep 命令两边加上方括号,因为它已经返回“0”或“1”,这正是需要的。

所以你的代码可以是:

$ if grep -q PASS /tmp/file && grep -q "All tests fine"  /tmp/file2 ; then echo "PASS"; fi
PASS
$ cat /tmp/file
PASS
$ cat /tmp/file2
All tests fine

如果这不是您想要的,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.