552
技術社區[雲棲]
如何將 Linux 命令的輸出賦值給變量
運行一條命令時,它都會產生某種輸出:要麼是該命令的期望結果,或者是該命令執行細節的狀態/錯誤消息。有些時候,你可能想要將某個命令的輸出內容存儲在一個變量中,以待在後續操作中取出來使用。
本文將介紹將 shell 命令賦值給變量的不同方法,這對於 shell 腳本編程是特別有用的。
可以使用如下形式的 shell 命令置換特性,將命令的輸出存儲到變量中:
變量名=$(命令)
變量名=$(命令 [命令選項 ...] 參數1 參數2 ...)
或者:
變量名=`命令`
變量名=`命令 [命令選項 ...] 參數1 參數2 ...`
以下是使用命令置換特性的示例:
本例,我們將 who
(顯示當前登錄係統的用戶) 的輸出值存儲到 CURRENT_USERS
變量中:
$ CURRENT_USERS=$(who)
然後,我們可以使用 echo 命令 顯示一個句子並使用上述變量,如下:
$ echo -e "以下為登錄到係統中的用戶:\n\n $CURRENT_USERS"
上麵的命令中:-e
標記表示解釋所有的轉義序列 (如 \n
為換行)。為節約時間和內存,通常在 echo 命令 中直接使用命令置換特性,如下:
$ echo -e "以下為登錄到係統中的用戶:\n\n $(who)"
在 Linux 中顯示當前登錄係統的用戶
接下來,為了演示上麵提到的第二種形式,我們以把當前工作目錄下文件數存儲到變量 FILES
,然後使用 echo 來輸出,如下:
$ FILES=`sudo find . -type f -print | wc -l`
$ echo "當前目錄有 $FILES 個文件。"
顯示目中包含文件的數量
原文發布時間為:2017-01-22
本文來自雲棲社區合作夥伴“Linux中國”
最後更新:2017-05-27 10:02:25