小编San*_*aku的帖子

为什么建议使用“printf -- <arguments>”而不是“echo <arguments>”?

在“Greg's Wiki”上的Bash Pitfalls中,我发现了以下引用:

事实上,echo这里使用该命令并不能绝对安全。-n例如,如果变量包含,echo将认为是一个选项,而不是要打印的数据。打印变量值的唯一绝对可靠的方法是使用printf

printf "%s\n" "$foo"
Run Code Online (Sandbox Code Playgroud)

但是当我输入:

var="-n Hello"
echo "$var"
Run Code Online (Sandbox Code Playgroud)

它工作正常并且不会解释-n为一个选项,所以我不明白为什么我引用的消息来源说我们需要使用它printf才能绝对安全?

shell-script echo variable

1
推荐指数
1
解决办法
463
查看次数

标签 统计

echo ×1

shell-script ×1

variable ×1