Ottenere errori nello script bash; Expr $ a + 1 espressione intera prevista

Ottenere errori nello script bash; Expr $ a + 1 espressione intera prevista

Bash è un famoso interprete di linea di comando che viene comunemente utilizzato nei sistemi basati su Linux e UNIX in quanto consente agli utenti di eseguire comandi e script nel terminale. Uno degli errori più comuni che gli utenti incontrano quando lavorano con Bash è il "Expr: espressione intera prevista" errore. Questo articolo darà un'occhiata più da vicino a questo errore, perché si verifica e come correggerlo, quindi se stai affrontando lo stesso errore, leggi questa guida.

Qual è l'errore "Expr: Integer Express previsto"

IL “Expr: espressione intera prevista"L'errore è un messaggio di errore generato dalla shell bash quando un utente tenta di eseguire un'espressione matematica che contiene caratteri non numerici. L'errore è in genere accompagnato da un numero di riga che indica dove si è verificato nello script.

Perché si verifica l'errore "expr: espressione intera"

IL "Expr: espressione intera prevista " L'errore si verifica quando l'utente tenta di eseguire un'operazione matematica utilizzando valori non numerici. Ad esempio, se un utente tenta di aggiungere una stringa a un numero, la shell bash genererà il "Expr: espressione intera prevista" errore. Diamo un'occhiata a un esempio di codice difettoso che fornisce questo errore:

#!/Bin/Bash
a = 0
B = 3
mentre ["$ a" -lt $ b]
Fare
Echo $ a
a = "expr $ a + 1"
Fatto

Qui il codice sopra utilizza il ciclo while per portare avanti il ​​processo di addizione che confronta la prima variabile, cioè UN il cui valore è 0, con la seconda variabile B il cui valore dato è 3. Il ciclo continuerà a eseguire fino a quando la condizione non diventa falsa, cioè A è inferiore a B, l'aggiunta viene eseguita utilizzando il comando EXPR. Il messaggio di errore "Expr $ 0 + 1: espressione intera prevista" indica che c'è un problema con il modo in cui lo script sta cercando di incrementare il valore di "A". L'errore è causato dall'uso virgolette Invece di backticks o il segno del dollaro con parentesi per eseguire il comando "expr":

Per correggere l'errore, lo script dovrebbe utilizzare i backticks (') Per eseguire il comando "expr" e valutare l'espressione aritmetica, quindi ecco il codice corretto che utilizza i backtick:

#!/Bin/Bash
a = 0
B = 3
mentre ["$ a" -lt $ b]
Fare
Echo $ a
a = 'expr $ a + 1'
Fatto

Qui ho appena sostituito le doppie citazioni con i backticks e ora il comando EXPR prende UN come intero ed esegue aggiunta questa la condizione nel while loop diventa falsa:

Conclusione

IL "Expr: espressione intera prevista" L'errore è un errore comune che si verifica in bash quando gli utenti tentano di eseguire operazioni matematiche su valori non numerici. Per correggere questo errore, è importante assicurarsi che tutti i valori nelle nostre espressioni matematiche siano numeriche. In questo modo, possiamo evitare questo errore e assicurarci che i nostri script siano eseguiti come previsto.