Passando argumentos para o bash com o comando awk para filtrar

Passando argumentos para o bash com o comando awk para filtrar

Gostaria de pedir ajuda como posso melhorar o script básico abaixo.

Então, consegui passar os argumentos para o bash, mas é possível que meu comando awk o torne mais flexível?

Encontrei um erro no df -hcomando onde ele mostra 2 linhas para 1 sistema de arquivos (supostamente apenas uma linha)

e então, o script não mostra os parâmetros corretos, pois os números dos argumentos ( $6e $5) foram alterados.

Amostra:

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

Minha saída será

/test=1%

=/tst2

mas deveria ser

/test=1%

/tst2=1%

Responder1

Basta usar isso e você não terá que se preocupar com o pós-processamento da dfsaída.

df -P

Isso garantirá que a saída de 1 sistema de arquivos não se estenda por várias linhas.

Então seu roteiro final será

df -h -P "$@" | awk '{ print $6,"=",$5}' | sed -n '1!p'

informação relacionada