Verifique se uma variável contém um número no Bash

Verifique se uma variável contém um número no Bash

Um número é uma combinação de 0-9 dígitos-as variáveis ​​de basquete armazenam todo o valor na forma de strings. Mesmo que o valor armazenado esteja no formato da string, podemos executar todas as operações aritméticas se o valor armazenado for um número válido. Como prática recomendada, devemos verificar os valores das variáveis ​​antes de executar as operações aritméticas.

Um número pode ser um número inteiro, um número de ponto flutuante ou um número positivo/negativo que prefixo com um símbolo "+ e -". Neste tutorial, discutimos alguns métodos para verificar se a variável contém apenas dígitos, números inteiros e valores duplos ou flutuantes, não alfabetos.

Usando o operador igual a Tilde (= ~)

A expressão regular é uma maneira rápida e fácil de verificar se um valor for um número. Em scripts de bash, o igual (= ~) O operador é usado para comparar um valor com uma expressão regular. Que pode ser usado com a declaração de festas se:

#!/usr/bin/Env Bash # shell Script Para verificar se o número de entrada é um número inteiro de leitura -p "Por favor, digite um número:" var if [[$ var = ~ [0-9]+$]]; Então Echo "$ var é um número" else Echo "$ var não é um número" Fi
12345678910#!/usr/bin/Env Bash# shell Script Para verificar se o número de entrada é um número inteiro de leitura -p "Por favor, digite um número:" var if [[$ var = ~ [0-9]+$]]; Então Echo "$ var é um número" else Echo "$ var não é um número" Fi

Escreva o trecho acima em um script de shell e execute. entrada pela primeira vez um número de valor.

Primeira corrida, digite um número: 12 12 é um número 

Novamente execute o script com alguns alfabetos e verifique a saída:

Segunda corrida, digite um número: 1A2B 12a não é um número 

Verifique se o número do ponto flutuante

Um número de ponto flutuante é um tipo inteiro que representa um número que pode conter uma parte fracionária (também conhecida como flutuação). Como o nome sugere, esses números podem assumir valores diferentes em diferentes locais e horários. Os números de ponto flutuante são normalmente usados ​​para representar números com um ponto decimal neles. Por exemplo, 1.0, 0.6 e 10.26 são todos números de ponto flutuante.

Escreva um novo script de shell que considere um número de ponto flutuante como um número válido.

#!/usr/bin/Env Bash # shell script para verificar se o número de entrada é um número # que pode ser um número inteiro ou número de ponto flutuante leia -p "Por favor, digite um número:" var if [[$ var = ~ [0 -9]+([.] [0-9]+)?$]]; Então Echo "$ var é um número" else Echo "$ var não é um número" Fi
1234567891011#!/usr/bin/Env Bash# shell script para verificar se o número de entrada é um número# que pode ser um número inteiro ou número de ponto flutuante leia -p "Por favor, digite um número:" var if [[$ var = ~ [0 -9]+([.] [0-9]+)?$]]; Então Echo "$ var é um número" else Echo "$ var não é um número" Fi

Execute o script acima, inserindo alguns números de ponto flutuante. Este script considerará todos os números de ponto flutuante como números válidos.

Primeira execução, digite um número: 12.10 12.10 é um número 

Usando a declaração de caixa do switch

Alguns dos scripts necessários para ter uma declaração de caso. Isso é semelhante a mudar de declarações em outras linguagens de programação. Também podemos usar expressões regulares no caso de opções de declaração e verificar se a entrada fornecida é um número.

#!/usr/bin/Env Bash # shell script para verificar se o número de entrada é um número # usando a instrução do caso do switch leia -p "Por favor, digite um número:" var case $ varin "|*[!0-9]*) eco "$ var não é um número" ;; *) eco "$ var é um número" ;; ESAC
12345678910#!/usr/bin/Env Bash# shell script para verificar se o número de entrada é um número# usando a instrução do caso do switch leia -p "Por favor, digite um número:" var case $ varin "|*[!0-9]*) eco "$ var não é um número" ;; *) eco "$ var é um número" ;; ESAC

Execute o script acima várias vezes com entradas diferentes e veja os resultados:

Primeira corrida, digite um número: 12 12 é um número 

Verifique se o número contém +/- Sinais

Nos métodos acima, verificamos valores inteiros que contêm apenas 0-9 dígitos, um número de ponto flutuante que também contém uma fração de valores conhecidos como números decimais. Em alguns casos, um número também pode ser positivo ou negativo. Qualquer número sem prefixo ou com + é um número positivo. O número com - prefixo é um número negativo.

Atualizar a expressão regular, para considerar um número que possui um +/- canta antes disso.

#!/usr/bin/Env Bash # shell script para verificar se o número de entrada é um número # e pode ser um número positivo ou negativo leia -p "Por favor, digite um número:" var if [[$ var = ~ [+ - ]?[0-9]+$]]; Então Echo "$ var é um número" else Echo "$ var não é um número" Fi
1234567891011#!/usr/bin/Env Bash# shell script para verificar se o número de entrada é um número# e pode ser um número positivo ou negativo leia -p "Por favor, digite um número:" var if [[$ var = ~ [+ - ]?[0-9]+$]]; Então Echo "$ var é um número" else Echo "$ var não é um número" Fi

Execute o script acima com entradas diferentes e verifique os resultados.

Primeira execução Por favor, digite um número: 12 12 é um número de segundo execução, digite um número: -12 -12 é um número de terceira execução, digite um número: +12 +12 é um número 

Verifique se um número é positivo ou negativo

Ao executar operações aritméticas em scripts de bash, você deve verificar os valores de entrada. O script do shell abaixo o ajudará a verificar se o número de entrada é um número positivo ou um número negativo.

#!/usr/bin/Env Bash # shell script para verificar se o número de entrada # é um número positivo ou número negativo leia -p "Por favor, digite um número:" var ## verifique se a entrada é um número válido se [[$ var = ~ ^[+,-]?[0-9]+$]]; Então ## verifique se a entrada é um número positivo ou negativo se [[$ var = ~ ^[-] [0-9]+$]]; Então eco "$ var é um número negativo" else eco "$ var é um número positivo" fi else echo "$ var não é um número" fi
1234567891011121314151617#!/usr/bin/Env Bash# shell script para verificar se o número de entrada# é um número positivo ou número negativo leia -p "Por favor, digite um número:" var ## verifique se a entrada é um número válido [[$ var = ~ ^[+,-]?[0-9]+$]]; Então ## verifique se a entrada é um número positivo ou negativo se [[$ var = ~ ^[-] [0-9]+$]]; Então eco "$ var é um número negativo" else echo "$ var é um número positivo" fielse echo "$ var não é um número" fi

Execute o script acima com números positivos e negativos. Em seguida, verifique os resultados.

Primeira execução Por favor, digite um número: 12 12 é um número positivo em segunda execução. Digite um número: -12 -12 é um número negativo de terceira execução, digite um número: +12 +12 é um número positivo 

Conclusão

Um número é uma coleção de dígitos de 0 a 9. Qualquer número pode ser um número positivo ou negativo. Um número pode ser um número inteiro ou de ponto flutuante. Este tutorial ajudou você a verificar se o valor fornecido é um número ou não em scripts de basquete.