早些时候我正在编写一个小脚本,并注意到一些我无法解释的东西。
运行这个命令
(time wget --spider http://www.google.co.uk/) 2>&1 | egrep 'real|response'
Run Code Online (Sandbox Code Playgroud)
给我这个输出(我期望)
HTTP request sent, awaiting response... 200 OK
real 0m0.086s
Run Code Online (Sandbox Code Playgroud)
我在一个变量中捕获上面的输出
Result=$((time wget --spider http://www.google.co.uk/) 2>&1 | egrep 'real|response')
Run Code Online (Sandbox Code Playgroud)
如果我
echo "$Result"
Run Code Online (Sandbox Code Playgroud)
我得到了预期的输出
HTTP request sent, awaiting response... 200 OK
real 0m0.086s
Run Code Online (Sandbox Code Playgroud)
但是如果我
echo $Result
Run Code Online (Sandbox Code Playgroud)
我得到
HTTP request sent, awaiting response... 200 OK real 0m0.086s
Run Code Online (Sandbox Code Playgroud)
这是为什么 ?
Ada*_*tek 11
该echo $Result命令将变量的值转换为多个参数用于 echo,在任何空白处拆分,并且 echo 打印所有由空格分隔的参数。另一方面,echo "$Result"将整个字符串(包括空格)放入第一个也是唯一的 echo 参数中,该参数直接打印。