以下の基本的なスクリプトをどのように改善すればよいか、助言をいただきたいと思います。
つまり、引数を bash に渡すことはできましたが、awk コマンドでより柔軟にすることは可能でしょうか?
コマンドでエラーが発生しました。1df -h
つのファイルシステムに対して 2 行が表示されます (1 行のみのはずです)
その後、引数番号 ( と$6
)$5
が変更されたため、スクリプトは正しいパラメータを表示しません。
サンプル:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/test/test2/test3 1.1G 100M 1G 1% /test
/dev/test/test2/test3/test4
1.1G 100M 1G 1% /tst2
$ cat myscript.sh
#!bin/bash
df -h "$@" | awk '{print $6,"=",$5}' | sed -n '1!p'
$ ./myscript.sh /test /tst2
私のアウトプットは
/test=1%
=/tst2
しかし、そうあるべきだ
/test=1%
/tst2=1%
答え1
代わりにこれを使用すれば、出力の後処理について心配する必要がなくなりますdf
。
df -P
これにより、1 つのファイルシステムの出力が複数行にまたがらないようになります。
最終的なスクリプトは次のようになります
df -h -P "$@" | awk '{ print $6,"=",$5}' | sed -n '1!p'