如何將Linux命令的輸出賦值給變量
運行一條命令時,它都會產(chǎn)生某種輸出:要么是該命令的期望結(jié)果,或者是該命令執(zhí)行細節(jié)的狀態(tài)/錯誤消息。有些時候,你可能想要將某個命令的輸出內(nèi)容存儲在一個變量中,以待在后續(xù)操作中取出來使用。
本文將介紹將 shell 命令賦值給變量的不同方法,這對于 shell 腳本編程是特別有用的。
可以使用如下形式的 shell 命令置換特性,將命令的輸出存儲到變量中:
- 變量名=$(命令)
- 變量名=$(命令 [命令選項 ...] 參數(shù)1 參數(shù)2 ...)
- 或者:
- 變量名=`命令`
- 變量名=`命令 [命令選項 ...] 參數(shù)1 參數(shù)2 ...`
以下是使用命令置換特性的示例:
本例,我們將 who (顯示當前登錄系統(tǒng)的用戶) 的輸出值存儲到 CURRENT_USERS 變量中:
- $ CURRENT_USERS=$(who)
然后,我們可以使用 echo 命令 顯示一個句子并使用上述變量,如下:
- $ echo -e "以下為登錄到系統(tǒng)中的用戶:\n\n $CURRENT_USERS"
上面的命令中:-e 標記表示解釋所有的轉(zhuǎn)義序列 (如 \n 為換行)。為節(jié)約時間和內(nèi)存,通常在 echo 命令 中直接使用命令置換特性,如下:
- $ echo -e "以下為登錄到系統(tǒng)中的用戶:\n\n $(who)"
接下來,為了演示上面提到的第二種形式,我們以把當前工作目錄下文件數(shù)存儲到變量 FILES ,然后使用 echo 來輸出,如下:
- $ FILES=`sudo find . -type f -print | wc -l`
- $ echo "當前目錄有 $FILES 個文件。"
就是這些了。我們展示了將 shell 命令的輸出賦值給變量的方法。你可以在下邊的評論反饋區(qū)留下你的想法。