我在使用反引号使我的 shellscript 工作时遇到问题。这是我遇到问题的脚本的示例版本:
#!/bin/sh
ECHO_TEXT="Echo this"
ECHO_CMD="echo ${ECHO_TEXT} | awk -F' ' '{print \$1}'"
result=`${ECHO_CMD}`;
echo $result;
result=`echo ${ECHO_TEXT} | awk -F' ' '{print \$1}'`;
echo $result;
这个脚本的输出是:
sh-3.2$ ./test.sh
Echo this | awk -F' ' '{print $1}'
Echo
为什么使用命令变量的第一个反引号实际上并未执行完整命令,而仅返回第一个命令的输出以及第二个命令?为了让第一个反引号执行命令,我遗漏了一些东西?