4

我有一个简单的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. 任何想法为什么它不起作用?

4

2 回答 2

5

Run it as ./panic, not . panic,因为后者与 running 相同source panic,它不会做你想要的。看man source

于 2012-12-26T21:30:25.493 回答
4

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

./<script>

编辑

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

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

于 2012-12-26T21:30:42.980 回答