我没有找到这个答案,而且它必须是显而易见的,但我仍然需要帮助。
在尝试创建命令行选项时,我使用了各种标志并回显它们以验证它们是否正确。
然而,这个例子仍然失败:
declare foo="-n 40 "
echo $foo
运行时它只显示“40”。
如果我在前面再加一个破折号-n
,它打印--n
反斜杠/转义符?它打印了这一点。简而言之,我不明白到底是怎么回事才能让这个简单的文本正确显示。我什至尝试过使用--
(停止处理)无济于事。
因此,如果可能的话,请指出文档中的位置并解释为什么它会解释这一点-n
这样我就可以学会在未来不这样做,并解决它。
谢谢。
答案1
bashecho
内置函数解释-n
为自身的参数(如help echo
或中所述man bash
)。
-n
不附加换行符
其他一些echo
实现也做同样的事情。
代替使用printf
。
printf '%s\n' "$foo"