shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] parametros e opcoes


From: Fernando Lemes da Silva
Subject: Re: [shell-script] parametros e opcoes
Date: Thu, 04 Nov 2004 09:06:42 -0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040618


   Barioni,

   Não sei se é a mais adequada, mas voce pode fazer algo do tipo:

   #!/bin/sh

   case "$1" in
       '-x')
           echo "Opcao X selecionada"
           shift
           ;;
       '-y')
           echo "Opcao Y selecionada"
           shift
           ;;
       *)
           if [ -f "$1" ]; then
               echo "O arquivo $1 foi aceito como parametro"
           else
               echo "O parametro $1 nao corresponde a um arquivo!"
           fi
           shift
           ;;
   esac


O único problema é que -xy ou -yx não funcionaria. Talvez se voce verificasse a presença de um - na frente e trocasse cada caractere por espaço, sinal de menos e o proprio caractere resolvesse o problema. Não sei se é possível fazer um "unshift" disso... bom.. aí voce resolve.. :)

   []'s

--
   /**********************************************
        _     Fernando Lemes da Silva
       °v°    www.koho.com.br
      /(¡)\   Linux user #address@hidden
       ^ ^    lICQ UIN 2371843
   echo 396752965710071000896145190854552842P | dc
   **********************************************/


rcbarioni wrote:

preciso fazer um shell que aceite 1 parametro e 2 opcoes. Entretanto, não quero obrigar o usuario a colocar o parametro e as opcoes numa ordem fixa, até porque, as opções são (obviamente), opcionais.

Então, o shell teria que funcionar da mesma forma em qualquer um dos formatos (parm=paramnetro, x,y=opcoes):

myshell parm -x -y
myshell -xy parm
myshell -y parm
myshell -x parm -y

e assim por diante...

Pergunto. Qual seria a técnica mais adequada para que o shel possa identificar o parametro e as opcoes?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]