我使用反引号运算符编写的shell脚本出现问题,无法正常工作。以下是我遇到问题的脚本示例:
#!/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
为什么使用变量作为命令的第一个反引号不会执行整个命令,而只返回第一个命令的输出和第二个命令?我需要做些什么才能使第一个反引号执行命令?
$()
可以避免很多麻烦。 - Daenytheval
)。此外,您的shebang说“#!/bin/sh”,您的提示符显示为“sh”,但您的问题标签是[bash]
,这不是同一件事。 - Dennis Williamson$()
。没有任何借口。 - Daenyth