Echo

如何在 echo 語句中包含命令?

  • November 28, 2015

很簡單,但我沒有在這裡找到一個確切地問這個問題的問題。

我認為這會起作用,但事實並非如此。

echo "Your disk usage is ${df -k -h}."

我如何使上述工作?

使用$(),而不是${}

echo "Your disk usage is $(df -h)."

請注意,它df -h具有多行輸出(標題一行,每個掛載的文件系統一行),因此將其包含在 echo 語句中看起來很醜陋。

您可以通過更具體地說明您想要顯示的內容(例如,僅包含您的主目錄的 fs 的磁碟使用情況)並僅提取您想要列印的詳細資訊來解決這個問題。例如:

printf 'Your disk usage on %s is %s\n' $(df -h ~ | awk 'NR==2 {print $6, $3}') 

ksh你需要:

echo "... ${df -k -h;}"

如果您想顯示目前目錄所在的文件系統的使用百分比,並且如果您使用的是util-linux安裝了最新軟體包的 linux 系統,您應該這樣做:

printf "Your disk usage is:\t"
(until findmnt -noTARGET,USE% .;do cd ..; done)

引用自:https://unix.stackexchange.com/questions/246022