$ cat temp.txt
hello, world!
$ cat temp.txt | sed -n '1,4p'
hello, world!
$ ret=$(cat temp.txt | sed -n '1,4p')
$ echo "$ret"
hello, world!
$
我想知道爲什麼$ ret變量沒有空行。
非常感謝您的幫助。
$ cat temp.txt
hello, world!
$ cat temp.txt | sed -n '1,4p'
hello, world!
$ ret=$(cat temp.txt | sed -n '1,4p')
$ echo "$ret"
hello, world!
$
我想知道爲什麼$ ret變量沒有空行。
非常感謝您的幫助。
從bash幫助頁面(重點煤礦):
擊執行通過執行命令,並用任何尾隨的換行符 刪除替換與命令替換>命令的標準輸出,膨脹。嵌入的換行符不會被刪除,但可能在拆分單詞 期間被刪除。命令替換$(cat file)可以用相當於 的$(<文件)代替。
的echo "$ret"
的解析跳過空白在確定echo
實際參數將是什麼。玩弄這樣的事情來更好地理解:
x=$(echo ' foo ')
echo "x${x}x"
echo ${x}
echo "${x}"
他引用'$ ret',但。問題是,爲什麼'$ ret'中沒有空行? – chepner
「$() - 剝離換行符」。 http://stackoverflow.com/a/5322980/399077 – Nate