1
NL=$'\n'
CMD=""
CMD="$CMD echo Hello ; $NL"
CMD="$CMD echo World ; $NL"
$CMD

上面的代码给出了以下输出,它echo后面的所有内容都是全局的。

Hello ; echo World ;

换行符和分号在这里都不起作用。出了什么问题?

4

1 回答 1

-2

要启用反斜杠转义的解释,您必须添加 -e 标志来回显。

:/$ NL='\n'

将换行符放入 NL 变量中。

:/$ CMD=""

将 CMD 设置为空字符串。

:/$ CMD="$CMD echo Hello ; $NL"

重置 CMD,因为旧的 CMD 是 "" 那么新的是 " echo Hello ; \n"

:/$ CMD="$CMD echo World ; $NL"

重置 CMD,因为旧的 CMD 是 "echo Hello ; \n" 那么新的 CMD 是 "echo Hello ; \n echo World ; \n"

:/$ echo -e $CMD
echo Hello ; 
 echo World ; 
于 2017-08-29T06:08:58.580 回答