使用 awk 命令将参数传递给 bash 进行过滤

使用 awk 命令将参数传递给 bash 进行过滤

我想请求一些帮助,如何改进下面的基本脚本。

所以,我能够将参数传递给 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'

相关内容