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

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

Re: [shell-script] Criação de arquivos de usuários baseado no /etc/passw


From: Francival Lima
Subject: Re: [shell-script] Criação de arquivos de usuários baseado no /etc/passwd
Date: Thu, 10 Jul 2008 18:21:33 -0300

Allan,

  Acredito que o teu problema será solucionado se colocares as tuas
variáveis entre aspas duplas. Assim a linha do echo ficaria: echo "$login"
":" "$nome" >> /root/user/usuarios.txt.

  Desse modo o Shell não interpretaria o espaço em branco que possa existir
nos valores das variáveis.

  Tenta aí e depois fala se funcionou.

  Inté +

-- 
Francival Lima
O Moc, O Mocorongo.


2008/7/10 Allan Carvalho <address@hidden>:

>   César.
>
> Mais uma vez agradeço pela sua ajuda, porém, escrevi o script conforme sua
> sugestão e obtive o mesmo resultado, ele está considerando o espaço entre os
> nomes como o início de uma nova linha.
>
> #!/bin/bash
>
> for i in `cat /etc/passwd`
> do
> login=`cut -d: -f1 <<< $i`
> nome=`cut -d: -f5 <<< $i`
> echo $login ":" $nome >> /root/user/usuarios.txt
> done
>
> --
> Atenciosamente,
> Allan Carvalho
> MSN: address@hidden <allanc2%40gmail.com>
> --
>
> ----- Mensagem original ----
> De: César Vianna <address@hidden <cesar.vianna%40gmail.com>>
> Para: address@hidden <shell-script%40yahoogrupos.com.br>
> Enviadas: Quinta-feira, 10 de Julho de 2008 13:06:12
> Assunto: Re: [shell-script] Criação de arquivos de usuários baseado no
> /etc/passwd
>
> É por isso que sugeri fazer separado. Meu amigo Júlio talvez discorde. Mas,
> as soluções de "uma linha" por vezes complicam a vida.
>
> Sugestão:
>
> #!/bin/bash
>
> for i in `cat /etc/passwd`
> do
> campo1=`cut -d: -f1 <<< $i`
> campo5=`cut -d: -f5 <<< $i`
> #agora você faz o que quiser com cada um dos valores
> done
>
> 2008/7/10 Allan Carvalho <allancarvalho1@ yahoo.com. br>:
>
> > César.
> >
> > Mais uma vez muito obrigado por sua ajuda.
> >
> > Tive um problema ao executar o script, abaixo transcrevo o script que
> > produzi:
> >
> > #!/bin/bash
> >
> > for i in `cut -d: -f1,5 /etc/passwd`
> > do
> > echo $i >> /root/user/usuarios .txt
> > done
> >
> > Agora, vou pegar somente a linha do usuario que criei no /etc/passwd
> >
> > allan:x:1002: 1003:Allan Carvalho,,,: /home/allan: /bin/bash
> >
> > E agora, o resultado no arquivo usuarios.txt
> >
> > allan:Allan
> > Carvalho,,,
> >
> > Note que ele tratou o espaço existente entre o primeiro e o segundo nome
> > como o início de uma nova linha, e na verdade, eu queria que ficasse como
> > allan:Allan Carvalho .
> >
> > Como eu poderia corrigir isso?
> >
> > --
> > Atenciosamente,
> > Allan Carvalho
> > MSN: allanc2@gmail. com <allanc2%40gmail. com>
> > --
> >
> > ----- Mensagem original ----
> > De: César Vianna <cesar.vianna@ gmail.com <cesar.vianna% 40gmail.com> >
> > Para: shell-script@ yahoogrupos. com.br <shell-script% 40yahoogrupos.
> com.br>
>
> > Enviadas: Quinta-feira, 10 de Julho de 2008 9:22:57
> > Assunto: Re: [shell-script] Criação de arquivos de usuários baseado no
> > /etc/passwd
> >
> >
> > Opa Allan
> >
> > Vamos desmembrar esse cut
> >
> > d é o delimitador
> > f é o campo
> >
> > Segue um exemplo, pegando o 5º campo
> >
> > $ cut -d: -f5 <<< "teste:x:18325: 18325:NOME DO
> > USUARIO:/home/ teste:/bin/ bash"
> > NOME DO USUARIO
> >
> > 2008/7/10 Allan Carvalho <allancarvalho1@ yahoo.com. br>:
> >
> > > Prezados.
> > >
> > > Tenho o seguinte caso:
> > >
> > > Preciso criar um arquivo com o login e o nome completo do usuário,
> > pegando
> > > estas informações do /etc/passwd, aproveitando a dica do César Vianna,
> > > consigo pegar o login do usuário pelo laço for:
> > >
> > > for i in `cut -d: -f1 /etc/passwd`
> > >
> > > Bom, consigo pegar o login do usuário, como implementar para que eu
> > consiga
> > > pegar também o nome do usuário, já que, após o primeiro ":", existem
> mais
> > > três campos até o nome do usuário.
> > >
> > > Agradeço desde já.
> > >
> > > --
> > > Atenciosamente,
> > > Allan Carvalho
> > > MSN: allanc2@gmail. com <allanc2%40gmail. com>
> > > --
> > >
> > > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a
> sua
> > > cara @ymail.com ou @rocketmail. com.
> > > http://br.new. mail.yahoo. com/addresses
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> > --
> > César Vianna
> > ------------ -------
> > "Talvez porque eu pense demais ou sonhe demais, o certo é que não
> distingo
> > entre a realidade que existe e o sonho, que é a realidade que não
> existe."
> > Fernando Pessoa
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
> > cara @ymail.com ou @rocketmail. com.
> > http://br.new. mail.yahoo. com/addresses
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> --
> César Vianna
> ------------ -------
> "Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo
> entre a realidade que existe e o sonho, que é a realidade que não existe."
> Fernando Pessoa
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
> cara @ymail.com ou @rocketmail.com.
> http://br.new.mail.yahoo.com/addresses
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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