我有一个简单的awk
程序:
#!/usr/bin/awk -f
BEGIN {print "work already!"}
如果我将其运行为:
awk -f panic
在(osx)终端上它可以工作。但是如果我尝试将它作为脚本运行它会失败:
. panic
-bash: BEGIN: command not found
我检查了 awk 使用的位置,which awk
它确实位于/usr/bin/awk
. 任何想法为什么它不起作用?
Run it as ./panic
, not . panic
,因为后者与 running 相同source panic
,它不会做你想要的。看man source
要将文件作为脚本运行,您必须键入:
./<script>
编辑:
正如 William Pursell 所指出的,.
不是 的别名source
,而是恰恰相反。
. 不是源的别名。. 是在当前 shell 中运行另一个脚本的 sh 标准命令。source 是一个源自 csh 的命令,并被许多 sh 克隆用作 . 的别名。如果要将 source 视为除可憎之外的任何东西,它是 . 的别名,而不是相反。