我正在尝试使用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
}'
答案 0 :(得分:2)
第一点 :尽管我不是php专家,但我通常看到shell命令在exec
命令下运行。
第二点: 您无需将cat
与awk
一起使用。 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