Foi-me dado um script para modificar. Ele usa /bin/sh
e eu não posso mudar isso.
Eu quero verificar se um argumento é um número inteiro - especificamente, 1 ou 2.
Como faço isso e atendo o parâmetro estar ausente ou uma string, bem como um inteiro inválido?
Para verificar se um argumento para um script é
1
ou2
você pode simplesmente usar uma instrução case.O código abaixo pressupõe que você gostaria de verificar
$1
:Não há necessidade real de validar se o argumento é um inteiro válido ou não, pois você está preocupado apenas com dois valores específicos, e estes podem ser facilmente validados como strings. Os valores das variáveis do shell são sempre strings, a menos que sejam usados em um contexto aritmético, e não há razão para fazer isso aqui.
Você também pode usar uma declaração explícita
if
:Verifique o link abaixo para verificar se o valor do argumento é um número inteiro.
https://stackoverflow.com/questions/2210349/test-whether-string-is-a-valid-integer
e para verificar a ausência de variável, digamos que você esteja atribuindo seu primeiro argumento a uma variável