In BASH, es ist nicht notwendig, zu überprüfen, verwenden Sie die Option zu erklären, bevor es zu benutzen, können Sie erklären und weisen Sie Werte im laufenden Betrieb zu, sodass die erste Zeile (declare -i) entfernt werden kann.
Wenn Sie den verwendeten Prozent erhalten möchten, hat "df" eine Option, das zu tun (man df für weitere Informationen). Nach, mit 'grep', können Sie nur die Nummer mit dieser Regexp, beachten Sie, dass ich nur zwei Befehle statt drei verwenden Sie in Ihrem ersten Ansatz.
$ df --output=pcent /beep/data | grep -Eo '[0-9]+'
Auch für die Ausgabe eines Befehls zu kontrollieren und innerhalb einer Variablen genutzt:
var1=$(put your command with params here)
Daher wäre die erste Zeile sein:
output=$(df --output=pcent /beep/data | grep -Eo '[0-9]+')
echo "${output}"
In BASH gibt Zwischen dem Gleichheitszeichen, dem Namen der Variablen und dem zugewiesenen Wert dürfen keine Leerzeichen stehen.
limit=80
schließlich für den Vergleich von ganzen Zahlen verwenden doppelte Klammer und Variablen ohne ‚$‘, um den Vergleich zu machen, anstatt doppelte eckigen Klammern.
if ((output >= limit)); then
echo 'output is greater or equal than limit'
fi
können Sie verwenden für den Vergleich:
== Equal to
!= Not equal
> Greater than
< Less than
>= Greater or equal
<= Less or equal
War dies der genaue Code, den Sie lief? Sieht nicht so aus, als hättest du die zweite Zeile überschritten. – Fazlin
Deine 'df'-Zeile sieht gut aus, wie ich aus meinem Testergebnis bestätigen kannst Bist du sicher, dass im ursprünglichen Code keine Leerzeichen um' = 'stehen? – sjsam
Warum Probleme beim Kopieren und Einfügen des eigentlichen Codes? – sjsam