提问人:m615 提问时间:11/14/2023 更新时间:11/21/2023 访问量:84
echo 'hello' vs echo “hello” vs echo hello,我应该在 Bash 脚本中使用哪个?[复制]
echo 'hello' vs echo "hello" vs echo hello, which should I use in a Bash script? [duplicate]
问:
编写 echo 命令时,我应该在 {“”, '',} 中使用哪些字符?
明显地:
echo hello
echo "hello"
echo 'hello'
这三个都不会产生错误并执行它们应该做的事情,但我想知道哪一个是正确的。
答:
1赞
Doncho Gunchev
11/14/2023
#1
所有用法都是正确的。必须引用具有空格的参数。例如
echo 'Hello there'
不能不带引号,无论是单引号还是双引号,或者转义(见下文)。单引号和双引号之间的主要区别在于变量的处理。例:
w='World'
echo "Hello $w."
第二行需要双引号,否则不会打印“Hello World.”,而是“Hello $w.”。HTH。
PS:你也可以在shell中转义空格,像这样:
echo Hello\ \ there
并将留下下一个供您猜测它是如何工作的:
echo Hello\ there
1赞
Antonio Petricca
11/14/2023
#2
echo hello
适用于无空间方案,但这不是一个好的做法。
echo "hello"
允许您扩展变量。例如:
V="Hello Guy!"
echo "MyVar: ${V}"
它产生:
MyVar: Hello Guy!
相反,不会展开变量。例如,后一个示例生成:echo 'hello
MyVar: ${V}
评论
printf "%s\n" "hello"
;)对于您的示例来说,这取决于个人喜好并不重要。但是,当您想要扩展变量时,会有所不同。"$PWD"
*
echo '$PWD *'
echo "$PWD *"
echo $PWD *
echo $variable
显示了其他内容!与这种区别很重要的地方非常相关(而在不重要的情况下,你实际上没有遇到一个狭隘的、具体的问题,所以这个问题是题外话)。echo