Uzyskanie błędu w skrypcie Bash; Expr $ A + 1 Oczekiwane wyrażenie liczb całkowitych

Uzyskanie błędu w skrypcie Bash; Expr $ A + 1 Oczekiwane wyrażenie liczb całkowitych

Bash to popularny interpreter linii poleceń, który jest powszechnie używany w systemach Linux i UNIX, ponieważ pozwala użytkownikom wykonywać polecenia i skrypty w terminalu. Jednym z najczęstszych błędów, z którymi napotykają użytkownicy podczas pracy z BASH „Expr: oczekiwana ekspresja liczb całkowitych” błąd. W tym artykule przyjrzymy się bliżej tego błędu, dlaczego się pojawia i jak go poprawić, więc jeśli masz ten sam błąd, przeczytaj ten przewodnik.

Jaki jest błąd „Expr: Integer Expression Oczekiwana”

„Expr: oczekiwane wyrażenie liczb całkowitych„Błąd to komunikat o błędzie generowany przez powłokę bash, gdy użytkownik próbuje wykonać wyrażenie matematyczne zawierające znaki nie-numeryczne. Błądowi zwykle towarzyszy numer linii, który wskazuje, gdzie wystąpił błąd w skrypcie.

Dlaczego występuje błąd „Expr: Expression Expression”

„„Expr: Oczekiwana ekspresja liczb całkowitych ” Błąd występuje, gdy użytkownik próbuje wykonać operację matematyczną przy użyciu wartości niewidocznych. Na przykład, jeśli użytkownik próbuje dodać ciąg do liczby, powłoka bash wygeneruje „Expr: oczekiwana ekspresja liczb całkowitych” błąd. Spójrzmy na przykład wadliwego kodu, który podaje ten błąd:

#!/bin/bash
a = 0
B = 3
podczas gdy [„$ a” -lt $ b]
Do
Echo $ a
a = "expr $ a + 1"
zrobione

Tutaj powyższy kod wykorzystuje pętlę while do kontynuowania procesu dodawania, który porównuje pierwszą zmienną, to znaczy A którego wartość wynosi 0, z drugą zmienną B którego dana wartość to 3. Pętla będzie kontynuować wykonywanie, aż warunek stanie się fałszywy, czyli A jest mniejsze niż B, dodatek jest przeprowadzany za pomocą polecenia Expr. Komunikat o błędzie „Expr 0 $ + 1: Oczekiwane wyrażenie liczb całkowitych” wskazuje, że istnieje problem ze sposobem, w jaki skrypt próbuje zwiększyć wartość „a”. Błąd jest spowodowany użyciem podwójne cytaty Zamiast tworzenia się lub znak dolara z nawiasami do wykonania polecenia „Expr”:

Aby naprawić błąd, skrypt powinien używać back -ticks (') Aby wykonać polecenie „Expr” i ocenić wyrażenie arytmetyczne, więc oto poprawny kod, który korzysta z backticks:

#!/bin/bash
a = 0
B = 3
podczas gdy [„$ a” -lt $ b]
Do
Echo $ a
a = 'expr $ a + 1'
zrobione

Tutaj właśnie zastąpiłem podwójne cytaty na backtycki, a teraz polecenie Expr A Jako liczba całkowita i wykonuje to, że warunek w pętli While staje się fałszywy:

Wniosek

„Expr: oczekiwana ekspresja liczb całkowitych” Błąd jest powszechnym błędem, który występuje w BASH, gdy użytkownicy próbują wykonywać operacje matematyczne na wartościach nie-numerycznych. Aby poprawić ten błąd, ważne jest, aby upewnić się, że wszystkie wartości w naszych wyrażeniach matematycznych są numeryczne. W ten sposób możemy uniknąć tego błędu i upewnić się, że nasze skrypty są wykonywane zgodnie z przeznaczeniem.