為何bash中一條命令的輸出保存到變量之後換行符變成了空格
在 bash 中,為了將一個命令的輸出保存到變量中,通常是兩種寫法:
1
result=`ls -al`
2
或
3
result=$(ls -al)
如果命令中的輸出只有一行,一切皆沒有問題,比如
1
result=$(ls -al | wc -c)
整個命令的輸出是一個數字,看起來一切正常。
但我們運行以下腳本時,輸出的結果是一團糟:
1
<span></span>result=$(ls -al)
2
echo $result<span></span>
發現輸出的結果中,換行符被替換成了空格,一個多行的輸出變成了一行!
解決辦法:
1
result=$(ls -al)
2
echo “$result”
這樣輸出就正常了。