![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| 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 |
| xlc compilação de erro quando se tratar de operador de sobrecarga | luop0812 | AIX | 1 | 04-09-2008 05:09 |
| perl: Ao lidar com arquivos que não existem | joeyg | Programação Shell Script e | 2 | 02-20-2008 05:09 |
| tsch script problema (lidar com o sed) | csnewbie84 | Programação Shell Script e | 10 | 05-02-2007 11:51 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Ajuda a lidar com Arra
Estou readinga arquivo lin por linha e com base craeting um único arry de elemenst a partir da segunda coluna da linha. No entanto, quando i coem fora do loop, enquanto o meu array fique vazio, Eny um pode dizer-me o que eu iria estar fazendo errado
#! / bin / bash logfile \u003d ". / mylog.dat" iniciar \u003d 100 final \u003d"$(( $ iniciar + 1000))! d " índice \u003d 0 Isthere \u003d 0 MOTORES \u003d "" sed "$ começar, $ fim" $ logfile | enquanto lê linha fazer i \u003d `echo $ linha | awk-F", " '(print $ 2)'` Isthere \u003d 0 para o item em "$ (MOTORES [@]}"; fazer if [ "$ i" \u003d "$ item"]; então echo "Aleady lá" Isthere \u003d 1 quebrar fi feito if [ "$ Isthere"-eq 0]; então echo "$ Isthere acrescentando" MOTORES [$ index] \u003d `expr $ i` Índice \u003d $ (($ index + 1)) fi # Echo $ linha feito echo $ (# $ índice MOTORES [@]) # HOWE vez neste ponto array está vazio for i in "$ (MOTORES [@]}"; fazer echo $ i feito |
|
|||||
|
Altere a sua técnica para se livrar do gasoduto, mudar sua shell para ksh, ou viver com o vazio array. Estas são as suas opções. Desculpe, mas você não pode manter o gasoduto, bash, ea panóplia conteúdo. Um deles tem que ir. Aqui está um script simples para ilustrar o problema ... Código:
$ cat script2
#! /usr/local/bin/bash
echo "cat
dog
mouse
rabbit
lion
wolf
dog
bat
lion
hamster
rabbit
elephant
elephant
whale
cricket" > list.txt
index=0
cat list.txt | while read item ; do
array1[index]=$item
((index=index+1))
done
echo array1: ${array1[@]}
exec < list.txt
index=0
while read item ; do
array2[index]=$item
((index=index+1))
done
echo array2: ${array2[@]}
exit 0
$ ./script2
array1:
array2: cat dog mouse rabbit lion wolf dog bat lion hamster rabbit elephant elephant whale cricket
$
ksh é o único reservatório Sei que irão povoar as duas matrizes. Esta é uma das razões que eu prefiro fortemente ksh para outros reservatórios. (O outro é co-ksh processos.) Assim, a minha sugestão: mudar para ksh. |
|
||||
|
Fantástico, que foi de novo a ser, pensei em acabar com o do "disco escrevem" acontecendo ao mesmo tempo a pô-lo em um arquivo.
sed -n "$ começar, $ fim" $ logfile> motores exec <motores enquanto lê linha fazer # Array inserir feito Muito obrigado, estou tão usada t tais que bash, ksh, não é fácil para mim para usar agora. Ela não tem o "auto realização, quando o tipo de coisa e os tempos <tab> chave |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|