gpt4 book ai didi

linux - awk 脚本头 : #!/bin/bash 或 #!/bin/awk -f?

转载 作者:IT王子 更新时间:2023-10-29 00:59:19 24 4
gpt4 key购买 nike

在 awk 文件中,例如 example.awk,文件头应该是 #!/bin/bash 还是 #!/bin/awk -f

我的问题的原因是,如果我在控制台中尝试此命令,我会收到带有“文本行”的正确 file.txt:

 awk 'BEGIN {print "line of text"}' >> file.txt

但如果我尝试使用 ./example.awk 执行以下文件:

#! /bin/awk -f
awk 'BEGIN {print "line of text"}' >> file.txt

它返回一个错误:

$ ./awk-usage.awk
awk: ./awk-usage.awk:3: awk 'BEGIN {print "line of text"}' >> file.txt
awk: ./awk-usage.awk:3: ^ invalid char ''' in expression

如果我将 header 更改为 #!/bin/bash#!/bin/sh 它会起作用。

我的错误是什么?这是什么原因?

最佳答案

因为您显式运行了 awk 命令,所以您应该使用 #!/bin/bash。如果删除 awk 命令并仅包含 awk 程序(例如 BEGIN {print "line of text"}),但随后您需要使用 awk 语法(print ... >> file)追加到 file

awk -f 接受一个包含 awk 脚本的文件,所以这里是完全错误的。

关于linux - awk 脚本头 : #!/bin/bash 或 #!/bin/awk -f?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4670286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com