Me gustaría pedir ayuda sobre cómo puedo mejorar el script básico a continuación.
Entonces, pude pasar los argumentos a bash, pero ¿es posible que mi comando awk lo haga más flexible?
Encontré un error en df -h
el comando donde muestra 2 líneas para 1 sistema de archivos (se supone que es solo una línea)
y luego, el script no muestra los parámetros correctos ya que los números de argumento ( $6
y $5
) han cambiado.
Muestra:
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
Mi salida será
/test=1%
=/tst2
pero debería ser
/test=1%
/tst2=1%
Respuesta1
Simplemente use esto en su lugar y no tendrá que preocuparse por el posprocesamiento de la df
salida.
df -P
Esto garantizará que la salida de 1 sistema de archivos no abarque varias líneas.
Entonces tu guión final será
df -h -P "$@" | awk '{ print $6,"=",$5}' | sed -n '1!p'