bash echo如何打印其参数?

时间:2014-05-27 22:54:09

标签: bash echo

根据type我使用bash(4.2.37)内置echo。现在,如果我输入

echo 'Hello, World!'

..那么echo命令将会看到" Hello,World!"作为一个论点?在

的情况下
echo Hello, World!

.. echo命令会从bash接收两个参数吗? "你好,"和#34;世界!"分别

1 个答案:

答案 0 :(得分:3)

echo将其参数与空格连接并打印结果。

这意味着echo Hello Worldecho 'Hello World'echo Hello World都会产生完全相同的输出。

如果您想查看将作为参数传递的内容,可以使用printf

$ printf "Arg: <%s>\n" Hello, World!
Arg: <Hello,>
Arg: <World!>

$ printf "Arg: <%s>\n" 'Hello, World!'
Arg: <Hello, World!>

$ var='my var
with linefeeds'    

$ printf "Arg: <%s>\n" $var
Arg: <my>
Arg: <var>
Arg: <with>
Arg: <linefeeds>

$ printf "Arg: <%s>\n" "$var"
Arg: <my var
with linefeeds>
同一个输出的

echo将包含<..>中的每个字符串,它们之间只有一个空格。

特别注意,对于未加引号的变量,结果echo $var不会显示换行符(因为echo看到四个单独的单词,它只是与空格连接)。 StackOverflow上有关于此的每日问题。