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

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

Direcionar saida de comandos para o read


From: Klaus Jurgen Friedrich
Subject: Direcionar saida de comandos para o read
Date: Tue, 23 Sep 2008 21:41:16 -0700 (PDT)

Estou aprendendo shell script e encontrei com um problema de um exemplo do
 livro Programação Shell Linux.

Fiz algumas simplificaçoes nos exemplos.
Vejam:

$ grep klaus /etc/passwd
klaus:x:1000:1000:klaus:/home/kurumin:/bin/bash

$ IFS=:                 # tranformei a variavel $IFS em dois pontos.


Ate aqui tudo bem, vejam agora:
# Joguei a saida do comando grep para o read armazenar nas variaveis:
#  $a $b $c $d $e $f  $g

$ grep klaus /etc/passwd | read a b c d e f g

# Nao criou a variavel $a
$ echo $a

# Nao criou nenhuma variavel, vejam. 
$ echo -e "$a\n$b\n$c\n$d\n$e\n$f\n$g"

Fiz outro teste de um exemplo do livro, "O exemplo foi modificado por motivo de 
simplificação.

cat arquivo
12345 1254 1235
12575 4788 1547
15488 9857 5289

# direcionar o arquivo do final do script para o comando while.

$ cat teste   # Conteudo do arquivo "teste"
while read Linha
do
    prim=$(echo "$Linha" | cut -f1 -d" ")
    seg=$(echo "$Linha" | cut -f2 -d" ")
    terc=$(echo "$Linha" | cut -f1 -d" ")
    echo "$prim"
done < arquivo

# Executei o script e fiquei espantado
$ ./teste
12345 1254 1235
12575 4788 1547
15488 9857 5289

O grande problema eh que eu dei a instrucao ao script para mostrar  somente
a primeira variavel "$prim" na tela e somente armazenar a segunda variavel $seg
e a terceira na variavel na variavel $tec
A primeira variavel $prim deveria ter somente o primeiro campo, a segunda 
variavel somente o segundo campo e a terceira o teiceiro campo.
Por que aconteceu isso?







      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]



reply via email to

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