在bash脚本中,如果在消息中找到了字符串,我需要检查命令1的stderr和stdout消息并运行命令2
类似:
command 1
if [ $? != 0 ] and grep stderr and stdout of command 1 and if it contains hello world; then run
command 2
fi
答案 0 :(得分:0)
将command1的输出重定向到文件,然后使用grep检查文件是否包含字符串“ hello world”
command1 > /tmp/stdout.$$ 2>/tmp/stderr.$$
if [ $? -ne 0 ] && grep 'hello world' /tmp/stdout.$$ /tmp/stderr; then
command2;
fi
您还可以使用“ 2>&1”语法将文件组合成一个文件(将文件描述符2(stderr)重定向到文件描述符1(stdout)。
command1 > /tmp/stdout-stderr.$$ 2>&1
if [ $? -ne 0 ] && grep 'hello world' /tmp/stdout-stderr.$$; then
command2;
fi