我做了这个awk代码来打印2个名字
#! /usr/bin/awk -f
BEGIN {
for (i=0; i < ARGC; i++)
print ARGV[i]
} inventory-shipped BBS-list我希望结果是
awk
inventory-shipped
BBS-list但是当我运行它时,脚本仍然希望我在上面写一些东西来打印,即使我希望打印的列表已经在那里了。但是当我像这样在终端上写它的时候
$ awk 'BEGIN {
for (i=0; i <ARGC; i++)
print ARGV[i]
}' inventory-shipped BBS-list我可以打印出预期的结果。
发布于 2019-05-17 23:04:10
不要使用shebang从shell脚本执行awk,只需调用它:
#!/bin/env bash
awk '
BEGIN {
for (i=0; i < ARGC; i++)
print ARGV[i]
}
' inventory-shipped BBS-list这将使您能够更灵活地将shell脚本参数分离到awk变量和awk文件名中,或者做任何您喜欢做的事情。
发布于 2019-05-17 22:58:54
您不能将命令行参数放入脚本中。您应该以如下方式运行它
./scriptname inventory-shipped BBS-list发布于 2019-05-18 03:08:28
你可能想试试这个
script.awk
#!/usr/bin/awk -f
BEGIN {
for (i=0; i < ARGC; i++)
print ARGV[i]
}运行脚本
chmod a+x script.awk
./script.awk inventory-shipped BBS-list输出
awk
inventory-shipped
BBS-listhttps://stackoverflow.com/questions/56188955
复制相似问题