我能';是否运行awk手册中的第一个示例?
awk手册将此列为首批示例之一:我能';是否运行awk手册中的第一个示例?,awk,Awk,awk手册将此列为首批示例之一: awk "BEGIN { print \"Don't Panic!\" }" 显然我应该看到“不要惊慌!”,但实际上我看到: -bash: !\": event not found 有什么想法吗?试试看 awk "BEGIN { print \"Don't Panic\!\" }" 这应该可以做到这一点(在zsh下)。这取决于您的shell > bash $ awk "BEGIN { print \"Don't Panic!\" }" bash: !
awk "BEGIN { print \"Don't Panic!\" }"
显然我应该看到“不要惊慌!”,但实际上我看到:
-bash: !\": event not found
有什么想法吗?试试看
awk "BEGIN { print \"Don't Panic\!\" }"
这应该可以做到这一点(在zsh下)。这取决于您的shell
> bash
$ awk "BEGIN { print \"Don't Panic!\" }"
bash: !\": event not found
$ tcsh
> awk "BEGIN { print \"Don't Panic!\" }"
Unmatched '.
> sh
$ awk "BEGIN { print \"Don't Panic!\" }"
Don't Panic!
$
现代shell使用感叹号来引用部分命令行历史记录。在bash
和tcsh
中,它们可以被解释为历史参考。你可以逃出使用\
,或者您可以不使用它,或者您可以使用一个简单的shell
在上面我的bash
示例中,您可以看到失败的历史替换。在我的tcsh
示例中,您看到了引号的问题(因为双引号不能以这种方式转义)。您正在使用的awk手册可能已经足够旧了,它不会假设每个人都运行bash。太好了-这很有效!(但我得到了警告:转义序列
\!'被视为普通的`!')看看:-)在旁注上,你可以在bash
中使用set+H
禁用历史扩展。啊,说得好。另一方面,这种历史扩展问题只适用于交互式shell;脚本中没有历史事件。