我意识到这!在命令行历史记录的上下文中在命令行上具有特殊意义,但是除此之外,在运行脚本中,感叹号有时可能会导致解析错误。 我认为与有关event,但我不知道事件是什么或事件是什么。即使这样,同一命令在不同情况下的行为也可能不同。 下面的最后一个示例导致错误;但是为什么当相同的代码在命令替换之外起作用时呢?..使用GNU bash 4.1.5 # This works, with or without a space between ! and p { echo -e "foo\nbar" | sed -nre '/foo/! p' echo -e "foo\nbar" | sed -nre '/foo/!p'; } # bar # bar # This works, works when there is a space between ! and …