awk shebang不起作用

时间:2012-12-26 21:25:32

标签: linux bash shell unix awk

我有一个简单的awk程序:

#!/usr/bin/awk -f
BEGIN {print "work already!"}

如果我按原样运行:

awk -f panic

在(osx)终端上工作。但如果我尝试将其作为脚本运行,它就会失败:

. panic
-bash: BEGIN: command not found

我使用which awk检查了awk的位置,它确实位于/usr/bin/awk。任何想法为什么它不起作用?

2 个答案:

答案 0 :(得分:5)

./panic运行,而不是. panic,因为后者与运行source panic相同,后者无法执行您想要的操作。见man source

答案 1 :(得分:4)

要将文件作为脚本运行,您必须输入:

./<script>

修改

正如William Pursell所指出的那样,.不是source的别名,而是恰恰相反。

  

。不是源的别名。 。是用于在当前shell中运行另一个脚本的sh标准命令。 source是一个源自csh的命令,被许多sh克隆用作别名。如果源被视为除了憎恶之外的任何东西,它是。的别名,而不是相反。