我想请求一些帮助,如何改进下面的基本脚本。
所以,我能够将参数传递给 bash,但是我的 awk 命令是否可以使其更加灵活?
我在命令中遇到错误df -h
,它显示 1 个文件系统有 2 行(应该只有一行)
然后,脚本不会显示正确的参数,因为参数编号(和$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'