我正在使用 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
您不需要在 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
如果这不是您想要的,请告诉我。