NL=$'\n'
CMD=""
CMD="$CMD echo Hello ; $NL"
CMD="$CMD echo World ; $NL"
$CMD
上面的代码给出了以下输出,它echo
后面的所有内容都是全局的。
Hello ; echo World ;
换行符和分号在这里都不起作用。出了什么问题?
NL=$'\n'
CMD=""
CMD="$CMD echo Hello ; $NL"
CMD="$CMD echo World ; $NL"
$CMD
上面的代码给出了以下输出,它echo
后面的所有内容都是全局的。
Hello ; echo World ;
换行符和分号在这里都不起作用。出了什么问题?
要启用反斜杠转义的解释,您必须添加 -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 ;