echoステートメントにコマンドを含める方法は?

echoステートメントにコマンドを含める方法は?

とても簡単ですが、ここではまさにこの質問をする質問が見つかりませんでした。

私はこれがうまくいくと思いましたが、そうではありません。

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

上記の作業をどのように実行しますか?

答え1

使用$()、使用しない${}

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

df -h複数行の出力(ヘッダー用の1つ、マウントされた各ファイルシステム用の1つ)があるため、echoステートメントに含めると非常に見苦しくなります。

表示する内容(ホームディレクトリを含むファイルシステムのディスク使用量など)をより具体的に指定し、印刷したい詳細のみを抽出することでこの問題を解決できます。たとえば、

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

答え2

以下kshを行う必要があります。

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

現在のディレクトリがあるファイルシステムの使用率を表示し、最新のパッケージがインストールされているutil-linuxLinuxシステムを使用している場合は、次の手順を実行する必要があります。

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

関連情報