The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Atribuir valores para um array através de / enquanto loop fiori_musicali Programação Shell Script e 2 11-24-2008 11:01
Atribuir os valores de um Array kkraja Programação Shell Script e 1 08-11-2008 07:28
manipulando string psalas UNIX para Dummies Perguntas & Respostas 9 04-15-2008 11:00
atribuir valores a uma variável trichyselva UNIX para Dummies Perguntas & Respostas 3 12-14-2007 01:55
Atribuir valores para um array yongho UNIX para Dummies Perguntas & Respostas 4 07-13-2005 09:49

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 06-15-2009
Anteus Anteus is offline
Usuário
  
 

Join Date: Jun 2009
Lugares: 54
retreiving e atribuir valores e manipulando string em um loop de

Oi

Estou de novo a shell script e estou a preparar um guião.
por agora estou a trabalhar em uma sub-parte dele .. mas eu sou incapaz de fazer funcionar.

---
o Código de ensaio que estou trabalhando em
--------------------------
IFS \u003d ""
Sample_eve \u003d `PSG proc_s | grep ty`
n \u003d 0
para a linha em $ Sample_eve
fazer
n \u003d `expr $ n + 1»
Sam $ n \u003d $ ( `echo $ linha | awk-F" "(print $ 5) '| awk-F": "' (print $ 2) '`)
echo $ n $ Sam
feito
----------------------------
O que estou a tentar isto é ..
lista todo o processo chamado proc_s que estão actualmente em execução e estão na máquina TY ..
preenchê-las na variável Sample_eve.
e, em seguida, o acesso cada linha do Sample_eve e processá-los em uma base individual.
mas isso não está acontecendo .. para loop através de uma vez só vai .. se eu não definir IFS \u003d "" então toma linha palavra por palavra de dados a partir de US $ Sample_eve ... por que não posso ficar separado tempo para iniciar cada processo. (ele é executado 35 vezes por 4 linhas .. quero deixar correr apenas 4 tempo de 4 linhas).

Estou fazendo `echo $ linha | awk-F" "(print $ 5) '| awk-F": "' (print $ 2) '` .. de forma a chegar a hora de início para cada processo em minutos .. então i estou atribuindo-la em array Sam, de modo a obter o início Minuto para cada processo.
mas obtendo uma saída de erro como este ..
para esta missão como Teste array [9]: 04 ^ J28 ^ J04 ^ J09: não foi encontrado.
04, 28,04,09 são mostrados corretamente são os minutos .. mas não está em boa e devida forma.

Estou preso com esta coisa .. por favor me ajude. Sou incapaz de fazer o código funcionar.

Estou usando o Korn shell.
obrigado
  #2 (permalink)  
Old 06-15-2009
rakeshawasthi rakeshawasthi is offline
Usuário
  
 

Join Date: Aug 2004
Localização: Índia
Posts: 379
Citação:
Originally Posted by Anteus View Post
Sam $ n \u003d $ ( `echo $ linha | awk-F" "(print $ 5) '| awk-F": "' (print $ 2) '`)
Você não pode fazer assim ... $ Não deve vir do lado esquerdo.
Isso vai funcionar ...
Código:
Sam=`echo $line |awk -F" " {print $5}' |awk -F":" '{print $2}'`
  #3 (permalink)  
Old 06-15-2009
Anteus Anteus is offline
Usuário
  
 

Join Date: Jun 2009
Lugares: 54
Citação:
Originally Posted by rakeshawasthi View Post
Você não pode fazer assim ... $ Não deve vir do lado esquerdo.
Isso vai funcionar ...
Código:
Sam=`echo $line |awk -F" " {print $5}' |awk -F":" '{print $2}'`


-----------

Oi obrigado .. o código que você deu funcionou.

mas ainda ao acessar o array Sam. Estou tendo alguns problemas.

1: Quando Sam (echo $ [$ 2]) em vez de dar a 2. Elemento que imprime todos eles

2: para ((i \u003d 0; i <$ (# Sam [@]); i + +))
fazer
echo $ (Sam [$ i])
feito
seu jogando um erro
Teste [16]: Erro de sintaxe na linha 17: `(( 'inesperado

por favor informe como você pode ir sobre como acessar o array ..
  #4 (permalink)  
Old 06-15-2009
rakeshawasthi rakeshawasthi is offline
Usuário
  
 

Join Date: Aug 2004
Localização: Índia
Posts: 379
Citação:
Originally Posted by Anteus View Post
-----------

Oi obrigado .. o código que você deu funcionou.

mas ainda ao acessar o array Sam. Estou tendo alguns problemas.

1: Quando Sam (echo $ [$ 2]) em vez de dar a 2. Elemento que imprime todos eles

2: for ((i \u003d 0; i <$ (# Sam [@]); i + +))
fazer
echo $ (Sam [$ i])
feito
seu jogando um erro
Teste [16]: Erro de sintaxe na linha 17: `(( 'inesperado

por favor informe como você pode ir sobre como acessar o array ..
Nós não podemos escrever para um loop como este, a menos que você estiver usando o awk.
Estou dando um exemplo de matriz e para a alça para você ...
Código:
set -A _Array 1 2 3 4 5
for i in ${_Array[@]}
do
   echo $i
done
  #5 (permalink)  
Old 06-15-2009
Anteus Anteus is offline
Usuário
  
 

Join Date: Jun 2009
Lugares: 54
Citação:
Originally Posted by rakeshawasthi View Post
Nós não podemos escrever para um loop como este, a menos que você estiver usando o awk.
Estou dando um exemplo de matriz e para a alça para você ...
Código:
set -A _Array 1 2 3 4 5
for i in ${_Array[@]}
do
   echo $i
done

Sim. mas o que fazer se só o segundo elemento do array Sam tem de ser repercutido ..

e porque é que o echo $ (Sam [$ 2]) imprime toda a panóplia Sam?
  #6 (permalink)  
Old 06-15-2009
rakeshawasthi rakeshawasthi is offline
Usuário
  
 

Join Date: Aug 2004
Localização: Índia
Posts: 379
dessa forma ...
Código:
echo ${_Array[1]}
  #7 (permalink)  
Old 06-15-2009
Anteus Anteus is offline
Usuário
  
 

Join Date: Jun 2009
Lugares: 54
Citação:
Originally Posted by rakeshawasthi View Post
dessa forma ...
Código:
echo ${_Array[1]}

Tentei .. mas a sua não imprimir nada ... qualquer outra forma e sabe fazer isso.

o Código de ensaio é

IFS \u003d ""
»PSG vésperas \u003d ftp | grep tV`
n \u003d 0
para a linha em vésperas $
fazer
n \u003d `expr $ n + 1»
echo $ linha
array \u003d `echo $ linha | awk-F" " '(print $ 5)' | awk-F": " '(print $ 2)'`
echo $ (array [2])
feito
Reply

Marcadores

Tags
awk, cortar, para cada, de loop

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 05:34.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0