Obtendo erro no script bash; Expr $ a + 1 Expressão inteira esperada

Obtendo erro no script bash; Expr $ a + 1 Expressão inteira esperada

O Bash é um intérprete popular da linha de comando que é comumente usado em sistemas baseados em Linux e UNIX, pois permite que os usuários executem comandos e scripts no terminal. Um dos erros mais comuns que os usuários encontram ao trabalhar com Bash é o “Expr: expressão inteira esperada” erro. Este artigo analisará mais de perto esse erro, por que ele ocorre e como corrigi -lo; portanto, se você estiver enfrentando o mesmo erro, leia este guia.

Qual é o erro "Expr: Expressão inteira esperada"

O “Expr: expressão inteira esperada”Erro é uma mensagem de erro gerada pelo shell Bash quando um usuário tenta executar uma expressão matemática que contém caracteres não numéricos. O erro é normalmente acompanhado por um número de linha que indica onde o erro ocorreu no script.

Por que ocorre o erro "Expr: Expressão inteira esperada"

O "expr: expressão inteira esperada ” O erro ocorre quando o usuário tenta realizar uma operação matemática usando valores não numéricos. Por exemplo, se um usuário tentar adicionar uma string a um número, o shell da festa gerará o “Expr: expressão inteira esperada” erro. Vejamos um exemplo de código defeituoso que dá este erro:

#!/BIN/BASH
a = 0
b = 3
enquanto ["$ a" -lt $ b]
fazer
eco $ a
a = "Expr $ a + 1"
feito

Aqui, o código acima usa o loop while para continuar o processo de adição que compara a primeira variável, ou seja, a cujo valor é 0, com a segunda variável b cujo valor dado é 3. O loop continuará executando até que a condição fique falsa, ou seja, a é menor que B, a adição é realizada usando o comando EXPR. A mensagem de erro “Expr $ 0 + 1: Expressão inteira esperada” indica que há um problema com a maneira como o script está tentando aumentar o valor de "a". O erro é causado pelo uso aspas duplas Em vez de backsticks ou o sinal de dólar com parênteses para executar o comando "expr":

Para corrigir o erro, o script deve usar backticks (') Para executar o comando "Expr" e avaliar a expressão aritmética, então aqui está o código correto que usa os backticks:

#!/BIN/BASH
a = 0
b = 3
enquanto ["$ a" -lt $ b]
fazer
eco $ a
a = 'expr $ a + 1'
feito

Aqui eu acabei de substituir as citações duplas pelos backsticks e agora o comando EXPR leva a Como um número inteiro e executa a adição, essa é a condição no while loop fica falsa:

Conclusão

O “Expr: expressão inteira esperada” Erro é um erro comum que ocorre no Bash quando os usuários tentam realizar operações matemáticas em valores não numéricos. Para corrigir esse erro, é importante garantir que todos os valores em nossas expressões matemáticas sejam numéricas. Ao fazer isso, podemos evitar esse erro e garantir que nossos scripts sejam executados como pretendido.