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 -h
comando 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 ( $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 deveria ser
/test=1%
/tst2=1%
Responder1
Basta usar isso e você não terá que se preocupar com o pós-processamento da df
saí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'