Passando argumentos para bash com o comando awk para filtrar

0

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

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

Eu encontrei um erro no comando df -h onde ele mostra 2 linhas para 1 sistema de arquivos (supostamente uma linha)

e, em seguida, o script não mostra os parâmetros corretos, pois os números dos argumentos ( $6 e $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 deve ser

/test=1%

/tst2=1%
    
por kukiaz 30.10.2016 / 06:50

1 resposta

1

Use apenas isso e não terá que se preocupar com o pós-processamento da saída df .

df -P

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

Assim, seu script final será

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

    
por 30.10.2016 / 11:00