3
#!/bin/sh
STR="-e"
echo ${STR}
STR="${STR} HI"
echo ${STR}
上述脚本打印出来。为什么会这样,我该如何制作一个以“-e”开头的字符串?与开始字符串shell脚本 “-E”
#!/bin/sh
STR="-e"
echo ${STR}
STR="${STR} HI"
echo ${STR}
上述脚本打印出来。为什么会这样,我该如何制作一个以“-e”开头的字符串?与开始字符串shell脚本 “-E”
echo
不是一个很好的UNIX公民。如果表现良好,您可以编写echo -- "$STR"
,--
表示选项列表结束。但事实并非如此,所以你不能。您可以使用printf
来代替。
printf '%s\n' "$STR"
+1;换句话说:如果传递给'echo'的参数是从一个或多个看起来像有效选项的标记开始的 - 就像本例中的'-e'一样,'echo'总是会像这样解释它们。 – mklement0