这个让我难住了。
#!/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 变量(如果我使用 $(...) 而不是反引号,我会得到相同的行为)。
虽然我可以将 AWKSCRIPT 转储到临时文件 - 这也必须进行硬编码?
任何想法如何在反引号中插入变量?