Pular para o conteúdo

Verificar entrada de parametros (KSH)

Responder tópico
  • Denunciar
  • Indicar

1. Verificar entrada de parametros (KSH)

Enviado em 15/03/2012 - 11:15h

Ola pessoal,

Estou desenvolvendo um script em KornShell (ksh) que funciona usando dois valores alfanuméricos como entrada. O script funcionou legal, mas agora estou tendo dificuldade para criar um 'verificador' para os inputs. Minha intenção é que antes de executar o script o mesmo verifique se o usuário entrou com os parâmetros necessários.
Por exemplo:

O modo correto é:

script.ksh <parm1> <parm2>

Queria que uma mensagem de erro fosse imprimida na tela se o usuário esquecer um dos parâmetros ou os dois.

Tentei da seguinte forma sem sucesso:

if [[ $# == "$NO_ARGS" ]];then
echo "Usage: `$0` <queue name> <queue manager name>"
echo "You must specify queue name and queue manager name"
exit 1
fi

o valor de NO_ARGS eu defini usando:

NO_ARGS=""

O script roda normalmente como se esse if não existisse.

Se puderem me ajudar ficarei agradecido.
Obrigado

Responder tópico

2. Re: Verificar entrada de parametros (KSH)

Enviado em 15/03/2012 - 12:48h

Basta você checar o valor da variável built-in '$#', já que é nela que ficam definidas as quantidades de parâmetros recebidos pelo script. Ex.:


#!/bin/ksh
if [ $# -lt 2 ]; then
echo "Usage: $0 <queue name> <queue manager name>"
echo "You must specify queue name and queue manager name"
exit 1
fi



3. FUNCIONA!

Enviado em 15/03/2012 - 14:02h

Maravilha amigo, funcionou
mas no caso, sendo ksh usei :

if [[ $# != 2 ]];then

o operador -lt não funcionou.

Obrigado pela ajuda :D

4. ... estranho!

Enviado em 15/03/2012 - 15:05h

Qual a versão do ksh e sistema que você está executando esse script?

5. Entrada de parametros pelo usuário via shell-script

Enviado em 19/03/2012 - 17:02h


Use isto:

ARGS=2
E_WRONGARGS=85

if [ $# -ne "$ARGS" ] # Check for proper number of command-line args.
then
echo "Usage: `basename $0` filename column-number"
exit $E_WRONGARGS
fi

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder