cpp
我正在尝试根据以下方式获取返回值如何反转 grep 返回的计数?。我的脚本失败并显示以下消息-bash: 1: command not found
。
这是简化的测试用例:
$ echo `cpp -dM -fsanitize=undefined < /dev/null > /dev/null >2&1`
-bash: 1: command not found
为什么 Bash 尝试1
作为命令执行,如何清除错误?
答案1
正如 @steeldriver 指出的,问题是由于错误构造的 io 重定向造成的。原因如下:
cpp > 2 & 1
cpp 进程被置于后台,输出重定向到名为“2”的文件,& 符号也是像分号一样的命令分隔符,因此行中的下一个命令是“1”,shell 无法找到该命令。