Verificar entrada de parametros (KSH)

1. Verificar entrada de parametros (KSH)

Victor Mazeo Whitaker
whit4ker

(usa Red Hat)

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


  


2. Re: Verificar entrada de parametros (KSH)

Sandro Marcell
SMarcell

(usa Slackware)

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!

Victor Mazeo Whitaker
whit4ker

(usa Red Hat)

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!

Sandro Marcell
SMarcell

(usa Slackware)

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

Paulo Herman
paulo.herman

(usa Debian)

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







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts