[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Parametros em script
From: |
Frederico Argolo |
Subject: |
Re: [shell-script] Parametros em script |
Date: |
Fri, 30 May 2003 16:38:39 -0300 (ART) |
Fala Thobias,
Valeu novamente pela atencao, mas o seu script
funcionou, mas qndo vou aplicar a ideia no meu nao
funciona. Nao entendi direito o OPTIND.
Da uma olhada so no meu script(cortei o maximo
possivel para ficar mais claro).
$ cat script
#!/bin/bash
while getopts t:f: opt; do
case $opt in
t)
echo "entrou no t";
shift $(($OPTIND - 1))
echo "Cifrao 1: $1";
egrep to\=.*\<.*"$OPTARG".* mail.log | cut -f4 -d":" >
ID
for i in `cat ID`
do
fgrep $i mail.log >> ToSaida;
echo >> ToSaida;
done;;
f)
echo "entrou no f";
shift $(($OPTIND - 1))
echo "Cifrao 1: $1";
fgrep from\=\<"$OPTARG" mail.log | cut -f4 -d":" > ID
for i in `cat ID`
do
grep $i mail.log >> FromSaida;
echo >> FromSaida;
done;;
esac
done
####################################################
Como pode ver, os parametros 'f' e 't' sao
praticamente iguais, so diferem no grep.
So q qndo vou rodar o script assim, olha o q acontece:
$ ./script -t teste arq
entrou no t
Cifrao 1: arq
$ ./script -t teste -f teste arq
entrou no t
Cifrao 1: -f
$ ./script -f teste -t teste arq
entrou no f
Cifrao 1: -t
Repare que tem algo bem errado. Acho q nao entendi
direito mesmo o OPTIND.
Qq ajuda é bem vinda! :)
[]'s
Fred
--- Thobias Salazar Trevisan
<address@hidden> escreveu: >
> Olá de novo,
> $ cat y
> #/bin/bash
>
> while getopts 'ab:' op; do
> echo opcao=$op arg=$OPTARG optind=$OPTIND
> done
>
> shift $(($OPTIND - 1))
> echo "sobraram ${#} parametros, listando-(os)? ${@}"
> echo "ultimo parametro = $1"
>
>
##########################################################
>
> $ ./y -a -b teste
> opcao=a arg= optind=2
> opcao=b arg=teste optind=4
> sobraram 0 parametros, listando-(os)?
> primeiros parametro apos getopts =
>
> $ ./y -a -b teste arquivo1
> opcao=a arg= optind=2
> opcao=b arg=teste optind=4
> sobraram 1 parametros, listando-(os)? arquivo1
> primeiros parametro apos getopts = arquivo1
>
> $ ./y -a -b teste arquivo1 arquivo2
> opcao=a arg= optind=2
> opcao=b arg=teste optind=4
> sobraram 2 parametros, listando-(os)? arquivo1
> arquivo2
> primeiros parametro apos getopts = arquivo1
>
> $ ./y arquivo1 arquivo2
> sobraram 2 parametros, listando-(os)? arquivo1
> arquivo2
> primeiros parametro apos getopts = arquivo1
>
> Espero que tenha melhorado &:)
>
> thobias
_______________________________________________________________________
Yahoo! Mail
Mais espaço, mais segurança e gratuito: caixa postal de 6MB, antivírus,
proteção contra spam.
http://br.mail.yahoo.com/