將命令的輸出設為變數

將命令的輸出設為變數

如何將 的輸出放入head -15 textfile.txt變數以在以下命令$X中使用它:if

 if $X = 'disabled' then

答案1

x="$(head -15 testfile.txt)"
if [ "$x" = disabled ]
then
    echo "We are disabled"
fi

通常,任何時候您想要將命令的輸出捕獲到 shell 變數中,請使用以下形式: variable="$(command args ...)"。該variable=部分是作業。這$(...)部分是命令替換。

另請注意,shell 不執行if表單中的語句if $X = 'disabled'。 shell 期望後面有一個命令,if並且 shell 將評估該命令的回傳碼。在上面的例子中,我運行的test命令可以寫為test ...[ ... ]

許多人認為最佳實踐是在 shell 腳本中使用小寫變數。這是因為系統定義的變數是大寫的,您不想意外覆蓋它。另一方面,沒有呼叫系統變量,X因此這不是真正的問題。

相關內容