私は以前少しスクリプトをしていましたが、説明できないことがわかりました。
このコマンドを実行してください
(time wget --spider http://www.google.co.uk/) 2>&1 | egrep 'real|response'
私にこの出力を与えます(私が期待していたもの)
HTTP request sent, awaiting response... 200 OK
real 0m0.086s
上記の出力を変数にキャプチャしました。
Result=$((time wget --spider http://www.google.co.uk/) 2>&1 | egrep 'real|response')
もし私が
echo "$Result"
期待した結果を得ました。
HTTP request sent, awaiting response... 200 OK
real 0m0.086s
しかし、もし私が
echo $Result
わかりました。
HTTP request sent, awaiting response... 200 OK real 0m0.086s
なぜそんなことですか?
ベストアンサー1
このecho $Result
コマンドは変数値をエコーの複数の引数に変換し、スペースに分割し、エコーはスペースで区切られたすべての引数を出力します。一方、echo "$Result"
文字列全体(スペースを含む)は、直接印刷される最初の唯一のechoパラメータに入力されます。