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

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

Re: RES: RES: [shell-script] Quem poderia explicar!!!!!


From: Moysés
Subject: Re: RES: RES: [shell-script] Quem poderia explicar!!!!!
Date: Thu, 10 Jul 2003 21:36:29 -0700 (PDT)

O while é irrelevante!
Se você obteve, na variável, a linha de comando exatamente como desejava, o
problema foi o que comentei na mensagem, para linhas mais complexas muitas
vezes
não funciona. Não sei porque.Veja com linhas mais simples que funciona
perfeitamente.

Esse recurso, dependendo da situação, pode ser muito útil, afinal pode-se fazer
o próprio
escript escrever scripts que poderão escrever novos escripts, tudo
dinamicamente e
em memória.

Se algum dos nobres componentes da lista souber como executar qualquer comando
contido
em variável, ficarei muito grato em tomar ciência do mapa da mina.

Geraldo: se ao invés de executar a váriável você "echo"a-la em um arquivo tmp e
depois chamar a linha para stdin provavelmente funcionará. Irch! Bem, mas o que
é uma sucessão (no while) de minúsculas escritas/leitura para/de arquivo?!
Coisas do Mr.Bean, digo Mr.Bash.

unca consegui descobrir 

--- geraldo <address@hidden> wrote:
> Ola Placin!!!!!
> 
> Meu esse negocio e maluco demais!!!!!!!!!!!!
> 
> Fiz a sua sugestao:
> #:<<__EOF
> n=1
> while [ "${n:=1}" -le "$NL" ]
> do
> echo "Cadastrando ${NOME[$n]}"
> echo "Grupo ${GRUPO[$n]}"
> echo
> var="adduser -g teste -c \"${NOME[$n]}\" ${LOGIN[$n]}"
> echo $var
> read -p "Digite qq tecla"
> $var
>      echo ${SENHA[$n]} | passwd --stdin ${LOGIN[$n]}
>      usermod -g ${GRUPO[$n]} ${LOGIN[$n]}
>      echo "............................Feito"
>      echo
>      let n+=1
>      done
>      echo
> #__EOF
> 
> Olha so que doido:
> 
> adduser -g teste -c "Geraldo Russo" gr
> Digite qq tecla
> 
> Ele me retorna o HELP do adduser.
> 
> Se copio a linha que e o conteudo da variavel que e o comando que ele
> "deveria executar":
> adduser -g teste -c "Geraldo Russo" gr
> 
> No terminal ele funciona!!!!!!  Sera que meu problema esta no while!!!!!!
> 
> Abracos
> 
> 
> 
> 
> 
> 
> 
> Geraldo Russo Filho
> Linux Administrator
> Web Master
> address@hidden
> address@hidden
> fone:(35) 9954-4688
> 
> -----Mensagem original-----
> De: Moysis Placin [mailto:address@hidden]
> Enviada em: quinta-feira, 10 de julho de 2003 13:27
> Para: address@hidden
> Assunto: Re: RES: [shell-script] Quem poderia explicar!!!!!
> 
> 
> Nessas horas sempre acho interessante tentar imprimir o comando, como se
> estivesse digitando na console:
>       adduser -g teste -c ${NOME[$n]} ${LOGIN[$n]}
> #======
> var='adduser -g teste -c '${NOME[$n]}' '${LOGIN[$n]
> 
> echo $var
> read -p 'Enter para executar a linha acima'
> $var # esta linha variavel, conforme seu conteudo, nao funcioan corretamente
> #======
> 
> Acho que a idiia talvez nco ajude, mas como vocj disse:
> 1)Ele nao aceita o -c ${NOME[$n]} 2)e depois ...
> 
> Quem sabe!?
> PS. se interessar, sugiro copiar direto do browser e colar no seu editor,
> pelo menos a perda de tempo sera minima.
> 
> --- geraldo <address@hidden> wrote:
> > Valeu!!!!!!!!!
> > Essa deu certo porem mais afrente do script eu tenho:
> >
> > #:<<__EOF
> > n=1
> > while [ "${n:=1}" -le "$NL" ]
> > do
> > echo "Cadastrando ${NOME[$n]}"
> > echo "Grupo ${GRUPO[$n]}"
> > echo
> > adduser -g teste -c ${NOME[$n]} ${LOGIN[$n]}
> > echo ${SENHA[$n]} | passwd --stdin ${LOGIN[$n]}
> > usermod -g ${GRUPO[$n]} ${LOGIN[$n]}
> > echo "............................Feito"
> > echo
> > let n+=1
> > done
> > echo
> > #__EOF
> >
> > O problema esta no trecho:
> >
> > adduser -g teste -c ${NOME[$n]} ${LOGIN[$n]}
> > echo ${SENHA[$n]} | passwd --stdin ${LOGIN[$n]}
> > usermod -g ${GRUPO[$n]} ${LOGIN[$n]}
> >
> > Ele nao aceita o -c ${NOME[$n]} e nem depois usermod -g ${GRUPO[$n]}
> > ${LOGIN[$n]}.
> >
> > Antes estava fazendo assim:
> > adduser -g ${GRUPO[$n]} -c ${NOME[$n]} ${LOGIN[$n]} (tambem nao
> funcionou).
> >
> > Ai fiz um teste, isolei do while em outro arquivo para testar:
> >
> > #!/bin/bash
> > lg=grf
> > senha=123
> > grp=informatica
> > nome=Geraldo
> >
> > adduser -g $grp -c $nome $lg
> > echo $senha | passwd --stdin $lg
> >
> > Ele funcionou legal !!!!!!  O que pode estar de errado com o while!!!!!!
> >
> > Abracos!!!!
> >
> >
> > Geraldo Russo Filho
> > Linux Administrator
> > Web Master
> > address@hidden
> > address@hidden
> > fone:(35) 9954-4688
> > -----Mensagem original-----
> > De: Thobias Salazar Trevisan [mailto:address@hidden]
> > Enviada em: quarta-feira, 9 de julho de 2003 19:50
> > Para: address@hidden
> > Assunto: Re: [shell-script] Quem poderia explicar!!!!!
> >
> >
> >
> > ae,
> >
> > On Wed, 9 Jul 2003, gerusso2003 wrote:
> >
> > > Tenho um loop assim:
> > > #!/bin/bash
> > > for i in `(awk -F "\|" '{print $2}' usuario)`
> > >    do
> > >     NOME[$n]=$i
> > >     echo ${NOME[$n]}
> > >     let n+=1
> > > done
> > >
> > > O conteudo do arquivo usuario e esse:
> > > gr|Geraldo Russo|escola|info
> > > gf|Jose da Silva|escola|agro
> > >
> > > se executo awk -F "\|" '{print $2}' usuario no terminal ele retorna:
> > > Geraldo Russo
> > > Jose da Silva
> > >
> > > se fago no loop ele retorna:
> > > Geraldo
> > > Russo
> > > Jose
> > > da
> > > Silva
> >
> > o problema esta no for que usa o IFS default. para arrumar, antes
> > do for faga:
> >
> > OLDIFS="$IFS"
> > IFS="
> > "
> > for i in `awk -F "\|" '{print $2}' usuario`
> > ....
> > done
> > IFS="$OLDIFS"
> >
> > falow
> >
> > --
> > thobias
> > -------
> > echo 9446046325380026818553633794429812592304650P | dc
> > -------
> > http://www.lcp.coppe.ufrj.br/~thobias
> >
> > ____________________________
> > |
> > | Against - HTML Mail
> > | Against - MS ATTACHMENTS
> > |
> > ----------------------------
> >
> >
> > Yahoo! Groups Sponsor
> > PUBLICIDADE
> >
> >
> >  Ache sua vaga! Profissional Diretoria Gerjncia Supervisco Superior
> Ticnico
> > Outros Recim-formados Estagiarios
> > Promogco 7 dias gratis!
> >
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > Esta lista nco admite a abordagem de outras liguagens de programagco, como
> > perl, C etc. Quem insistir em nco seguir esta regra sera moderado sem
> privio
> > aviso.
> > ---------------------------------------------------------------------
> > Sair da lista: address@hidden
> > ---------------------------------------------------------------------
> > Esta lista i moderada de acordo com o previsto em
> > http://www.listasdiscussao.cjb.net
> > ---------------------------------------------------------------------
> >
> >
> > Seu uso do Yahoo! Grupos i sujeito aos Termos do Servigo Yahoo!.
> >
> >
> >
> 
> 
> =====
> ________________________________________________________________
> .         _
> Nco use  (v}     use
> droga   /(_)\  Linux
>          ^ ^
> 
> __________________________________
> Do you Yahoo!?
> SBC Yahoo! DSL - Now only $29.95 per month!
> http://sbc.yahoo.com
> 
> 
> ---------------------------------------------------------------------
> Esta lista nco admite a abordagem de outras liguagens de programagco, como
> perl, C etc. Quem insistir em nco seguir esta regra sera moderado sem privio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista i moderada de acordo com o previsto em
> http://www.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
> 
> 
> Seu uso do Yahoo! Grupos i sujeito `s regras descritas em:
> http://br.yahoo.com/info/utos.html
> 
> 
> 
> 
> 
> 


__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com


reply via email to

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