$ help echo
echo: echo [-neE] [arg ...]
Write arguments to the standard output.
Display the ARGs, separated by a single space character and followed by a
newline, on the standard output.
Options:
-n do not append a newline
-e enable interpretation of the following backslash escapes
-E explicitly suppress interpretation of backslash escapes
它可以工作,但运行
echo -e
不会在 Bash 中输出任何内容,除非同时启用posix
和xpg_echo
选项,因为-e
然后将其解释为选项:利用
反而。
正如评论中的 cas 所指出的,Bash
declare -p var
(typeset -p var
在 ksh、zsh 和 yash(和 bash)中)可用于告知变量的确切类型和内容。请参阅:为什么 printf 比 echo 更好?
一个命令(比如你的
echo
)需要命令行参数,这些参数可能是标志(-e
在你的情况下)。许多命令(至少是常见的 Linux 版本)--
将(两个连字符)理解为“标志的结尾,后面的都是常规参数”。因此,您可以删除一个-r
以rm -- -r
.对于显示的东西,
printf
周围更健壮(如果更难使用)。