Ich möchte um Hilfe bitten, wie ich das folgende Basisskript verbessern kann.
Ich konnte also die Argumente an Bash übergeben, aber ist es möglich, meinen Awk-Befehl flexibler zu gestalten?
Ich habe einen Fehler im df -h
Befehl festgestellt, bei dem 2 Zeilen für 1 Dateisystem angezeigt werden (es sollte eigentlich nur eine Zeile sein).
und dann zeigt das Skript nicht die korrekten Parameter an, da sich die Argumentnummern ( $6
und $5
) geändert haben.
Probe:
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
Meine Ausgabe wird sein
/test=1%
=/tst2
aber sollte
/test=1%
/tst2=1%
Antwort1
Verwenden Sie stattdessen einfach dies und Sie müssen sich keine Gedanken über die Nachbearbeitung der df
Ausgabe machen.
df -P
Dadurch wird sichergestellt, dass die Ausgabe für ein Dateisystem sich nicht über mehrere Zeilen erstreckt.
Ihr endgültiges Skript wird also sein
df -h -P "$@" | awk '{ print $6,"=",$5}' | sed -n '1!p'