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

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

RES: [shell-script] #!/bin/sh ou #!/bin/bash ?


From: Julio Cezar Neves - DISB.O
Subject: RES: [shell-script] #!/bin/sh ou #!/bin/bash ?
Date: Mon, 27 May 2002 20:50:05 -0300

Olá Tchê! Muito frio ai no Sul?

Vc conseguiu aquele read pg os separadores default do read são o branco, o
<tab> e o <enter>  isto é, o conteúdo da variável $IFS (o <enter> vc já
sabia, pq disse que antigamente fazia: for linha in `cat arquivo`). Para vc
verificar faça: (atenção pessoal do Linux! O comando hd não existe neste
sabor acho que usa-se od -h em seu lugar)
  # echo "$IFS" | hd    # Nao esqueca das aspas!
  20 09 0a 0a
Que é a representação hexadecimal dos 3 separadores. O último 0a é devido ao
<enter> que dei ao final da linha.

Então, se o separador for, digamos, dois-pontos, faça:
  IFS=:
  while read USERNAME lixo USERID GROUPID COMENTARIO ETC
  do
        echo "
                Usuario     = $USERNAME
                UID         = $USERID
                GID         = $GROUPID
                Comentarios = $COMENTARIO
                Resto       = $ETC"
  done < /etc/passwd

[ ]s,
Julio Cezar Neves
-Eu Apoio o Software Livre-



> -----Mensagem original-----
> De: Rodolfo Villanova
> [mailto:address@hidden]
> Enviada em: segunda-feira, 27 de maio de 2002 19:42
> Para: address@hidden
> Assunto: RE: [shell-script] #!/bin/sh ou #!/bin/bash ?
> 
> 
> -----Original Message-----
> From: Julio Cezar Neves - DISB.O
> [mailto:address@hidden]
> Sent: Monday, May 27, 2002 6:44 PM
> To: address@hidden
> Subject: RES: [shell-script] #!/bin/sh ou #!/bin/bash ?
> 
> >...Faltam muitas opções como p. ex. o read -n num, que lê 
> num caracteres e termina o read
> sem
> >necessidade do <enter> ou read -t tempo, que após tempo 
> segundos sai por time out....
> 
> E aí mestre Júlio, beleza!
> Bah, pessoal! Por falar em "read":
> gostaria de compartilhar uma "manha" que descobri em minhas 
> andaças pelo maravilhoso mundo
> do shell-script:
> 
> A leitura de campos de arquivos de dados através do "read".
> Antes eu "capava" os separadores "brancos" e "tabs", trocando 
> por ":" numa primeira
> leitura por awk e jogando prum outro arquivo, pra só então 
> pegar os dados com uma nova
> leitura, do tipo:
> #-----
> for linha in `cat arquivo`
> do ...
>       echo $linha | cut -d":" -f...
> done
> #-----
> 
> Agora, vejam que beleza!...
> 
> Ex.:
> #=======================
> ARQ_ENTRADA=~/...
> ARQ_OUT=~/ ...
> UPS=~/...
> while read -r PROCESSO PARAMETRO RESTO
> do
>       if [ -z "$PARAM" ]; then
>               PROC_AUX=`ps -ef | grep "$PROCESSO" | grep -v grep`
>       else
>               PROC_AUX=`ps -ef | grep "$PROCESSO $PARAMETRO" 
> | grep -v grep`
>       fi
>       if [ -z "$PROC_AUX" ]; then
>               echo "$PROCESSO $PARAMETRO" >> $ARQ_OUT
>       else
>               echo $PROC_AUX >> $UPS
>       fi
> done < $ARQ_ENTRADA
> #=====================
> 
> Abraço, mestre e amigo Julio Neves!
> 
> Rodolfo
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de 
> programação, como perl, C etc. Quem insistir em não seguir 
> esta regra será moderado sem prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
http://www.listasdiscussao.cjb.net
--------------------------------------------------------------------- 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 



reply via email to

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