AWK将变量传递给命令

时间:2018-12-14 00:36:52

标签: bash awk

我正在尝试使用awk将$ 9传递到执行的php命令中。但是,$ 9永远不会进入命令。如果我手动为param1建立值,那么一切正常。

cat file.name | awk -v date="$(date +"%Y-%m-%d %H:%M:%S")" '{
 x="'"`/usr/bin/php-cgi -f /path/hex2bin.php param1=$9`"'"
print "New value: ",$x
}'

1 个答案:

答案 0 :(得分:2)

第一点 :尽管我不是php专家,但我通常看到shell命令在exec命令下运行。

第二点: 您无需将catawk一起使用。 awk可以读取传递给它的任何Input_file。例如-> awk '........' Input_file

尝试修复代码: :由于您没有提到为什么在x程序中再次打印awk变量以及为什么{ {1}}在变量中被提及但未被使用?

我在这里正在通过date的{​​{1}}命令传递php并在其中转义$9来调用$脚本(没有示例I无法运行此命令。)

awk

但是在system中使用awk -v s1="'" -v s2="\"" -v date="$(date +"%Y-%m-%d %H:%M:%S")" ' { system(s1 "/usr/bin/php-cgi -f /path/hex2bin.php param1= " s2 "$9" s1) }' Input_file 命令有1件事,您将能够执行其他/ shell命令,因为它正在另一个子shell中执行命令,因此您将无法执行将其输出值放入system变量中,如果我错过了这里的内容,专家可以纠正我。

编辑: 或尝试使用while循环本身。

awk