我想將命令的結果放在變數中而不忽略 \n
$cmd=$(ls -l)
echo $cmd
uj5u.com熱心網友回復:
您的實際問題可能有更高級別的解決方案,但如果您真的想保留尾隨換行符,您可以執行以下操作:
a=$(ls -l; echo .)
a=${a%.}
但這似乎是一個可怕的黑客。
uj5u.com熱心網友回復:
通常,如果您愿意保證您的檔案名不包含空格或特殊/控制字符,您應該只通過替換或在腳本中使用 ls。我是,但大多數人不是,他們可能會告訴你根本不要以非互動方式使用 ls。
ls 命令通過空格分隔的欄位作業。這是一個非常古老的約定,雖然如果你愿意忠于它,它就可以很好地發揮作用,正如前面提到的,大多數當代用戶都不是。因此,當檔案名中有空格時在腳本中使用它會導致危險和/或不可預測的結果。
uj5u.com熱心網友回復:
使用雙引號進行變數替換和命令替換:
cmd="$(ls -l)"
echo "$cmd"
請參閱此頁面了解更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/428411.html
