Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables ksh未在回溯中计算变量_Variables_Ksh_Interpolation_Backticks - Fatal编程技术网

Variables ksh未在回溯中计算变量

Variables ksh未在回溯中计算变量,variables,ksh,interpolation,backticks,Variables,Ksh,Interpolation,Backticks,这件事把我难住了 #!/bin/ksh AWKSCRIPT='END { print "all done"; }' OUTPUT=`echo hello world | awk '$AWKSCRIPT'` RETVAL=$? echo "running echo hello world | awk '$AWKSCRIPT'" echo "Output = $OUTPUT" echo "returned = $RETVAL" 输出是 $ ./kshawk.ksh Output = hel

这件事把我难住了

#!/bin/ksh

AWKSCRIPT='END { print "all done"; }'

OUTPUT=`echo hello world | awk '$AWKSCRIPT'`

RETVAL=$?

echo "running echo hello world | awk '$AWKSCRIPT'"
echo "Output = $OUTPUT"
echo "returned = $RETVAL"
输出是

$ ./kshawk.ksh
Output = hello world
returned = 0
(我希望看到“输出=全部完成”)

在计算表达式时,解释器似乎没有替换AWKSCRIPT变量(如果使用$(…)而不是backticks,则会得到相同的行为)

虽然我可以将AWKSCRIPT转储到一个临时文件中,但这也必须是硬编码的


你知道如何在反勾号中插入变量吗?

在“$AWKSCRIPT”周围的单引号阻止了变量的插入。双引号不允许插值:

$ OUTPUT=`echo hello world | awk "$AWKSCRIPT"`
$ echo $OUTPUT
all done

谢谢msw-是的,已经修好了