使用 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'

相關內容