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

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

RE: [shell-script] Bem que matutei mas nao saiu !!!!


From: MrBiTs
Subject: RE: [shell-script] Bem que matutei mas nao saiu !!!!
Date: Thu, 20 Oct 2005 17:36:20 -0200

/*
E ae turma, to fazendo um programinha aqui e sempre me esbarro com o
seguinte problema.
Se digitarmos "ps aux" teremos os processos da maquina listados ..... algo
como:
*/

Ola

O comando for não vai trabalhar com o conceito de "linha" aí, e sim com um
conceito chamado IFS, que é uma variável do nosso ambiente que define nossos
separadores de campo. Interessante notar que echo $IFS retorna (
aparentemente ) nada, mas na verdade temos o espaço, o tab e a quebra de
linha como separadores de campo. Por isso o seu for gera a saída campo a
campo e não linha a linha.

Há alguns jeitos de contornar isso:

- Modificando o IFS:

#!/bin/bash

OldIFS=$IF
# Salvamos o IFS corrente

IFS=^ 
#Escolhemos um caracter que nao irá constar da listagem

for i in `ps aux |grep $1`
do
        echo $i
done

# Restauramos o IFS 
IFS=$OldIFS

- Utilizando um laço while ao invés do for:

#!/bin/bash

ps aux | grep $1 | \
while read LINHA ; do
        echo $LINHA
done


------------------------------------------
http://www.mrbits.com.br/
 
"There is still more Unix-nature in one
line of shell script than there is in ten
billion lines of C" 
Master Foo - Sh-bng Province - 530 B.C.
 
"Programar em shell scritp é a coisa mais gostosa que você pode fazer
vestido"
Julio C. Neves - 10/08/2005



reply via email to

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