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-是的,已经修好了