Echo
如何在 echo 語句中包含命令?
很簡單,但我沒有在這裡找到一個確切地問這個問題的問題。
我認為這會起作用,但事實並非如此。
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)