Bash、echo $variableについて質問します。

Bash、echo $variableについて質問します。

私は以前少しスクリプトをしていましたが、説明できないことがわかりました。

このコマンドを実行してください

(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パラメータに入力されます。

おすすめ記事