如何运行包含 awk 命令的 shell 脚本

如何运行包含 awk 命令的 shell 脚本

如何运行这个脚本(称为count.sh)?

awk 'BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }'

我正在尝试运行它,sh count.sh但它给了我一个错误。

答案1

这是我为自己的脚本所做的:

#!/usr/bin/awk -f
BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }

这种方法的唯一缺点是 Awk 的路径是硬编码的。当脚本通过 NFS 导出并且 NFS 客户端将 Awk 安装在不同的目录中时(例如,/bin/awk/usr/bin/awk.),这将会中断。

设置可执行权限将允许您直接调用脚本,而无需使用 shell 来启动它(您也可以省略 .sh 扩展名,因为按照惯例脚本不包含它们):

$ chmod +x count
$ ./count
1
2
3
4
5

答案2

我运行了你的脚本,但没有收到任何错误(尽管我期望:))

$ cat test.awk
awk 'BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }'
$ bash test.awk
1
2
3
4
5

你得到了什么错误?我预计 awk 会要求输入文件来处理;学到了新东西:)

相关内容