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.