[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Dúvida com opcoes como argumentos
From: |
Alfredo Casanova |
Subject: |
Re: [shell-script] Dúvida com opcoes como argumentos |
Date: |
Mon, 27 May 2013 17:44:41 -0300 |
Leslie, consigo separá-los facilmente:
$ cat geto
while getopts "G:U:" option
do
case "$option" in
G) GRPS="$OPTARG";;
U) USRS="$OPTARG";;
esac
done
for i in $GRPS
do
for j in $USRS
do
echo GRPS $i e USRS $j
done
done
$ ./geto -G "a b c" -U "d e f"
GRPS a e USRS d
GRPS a e USRS e
GRPS a e USRS f
GRPS b e USRS d
GRPS b e USRS e
GRPS b e USRS f
GRPS c e USRS d
GRPS c e USRS e
GRPS c e USRS f
2013/5/27 Leslie Watter <address@hidden>
> **
>
>
> 2013/5/27 Alfredo Casanova <address@hidden>
>
> > **
> >
> >
> > Na verdade o shift eu ja conheço, mas nao resolve pq eu nao tenho como
> > controlar quantos usuários e grupos serão passados
> >
> > estou usando o comando GETOPTS
> >
> > até agora está assim:
> >
> > $ cat geto
> > while getopts "G:U:" option
> > do
> > case "$option" in
> > G) GRPS="$OPTARG";;
> > U) USRS="$OPTARG";;
> > esac
> > done
> >
> > echo "$GRPS"
> > echo "$USRS"
> >
> > $ ./geto -G "d e f" -U "a b c"
> >
>
> Só uma pergunta, porque vc está passando todos eles entre aspas ?
> Desse jeito vc não terá como separá-los.
>
> Agora, caso vc passe eles sem as aspas vc vai conseguir separá-los ;-)
>
> Veja um exemplo que come direto o 1o argumento ...
>
> -------------------------------------------
> $ cat > /tmp/shif.sh
> #!/bin/bash
> while shift ; do
> echo $1;
> done
> -------------------------------------------
>
> -------------------------------------------
> $ /tmp/shif.sh 0 1 2 34 56 7
> 1
> 2
> 34
> 56
> 7
> -------------------------------------------
>
> -------------------------------------------
> $ /tmp/shif.sh 0 -u 1 2 34 -g 56 7 9
> -u
> 1
> 2
> 34
> -g
> 56
> 7
> 9
> -------------------------------------------
>
> aí é só testar o $1 com -u ou -g e pimba :D
>
> []s
>
> LEslie
>
> >
> --
> Leslie H. Watter
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
--
[]'s
Alfredo Casanova
Linux User #228230
msn: address@hidden
tel: +55 61 9655 9619
[As partes desta mensagem que não continham texto foram removidas]