The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
xlc errore di compilazione quando si tratta di operatore di sovraccaricare luop0812 AIX 1 04-09-2008 05:09 PM
perl: Quando si tratta di file che non esistono joeyg Shell scripting e di programmazione 2 02-20-2008 05:09 PM
tsch script problema (che trattano con sed) csnewbie84 Shell scripting e di programmazione 10 05-02-2007 11:51 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 08-27-2007
jojan jojan is offline
Utente Registrato
  
 

Iscriviti Data: luglio 2007
Interventi: 12
Guida in materia di ARRA

Sono readinga file da lin linea e basate craeting uno arry di elemenst unico a partire dalla seconda colonna della riga. Tuttavia, quando i coem fuori del ciclo while mio array è vuoto, eny uno può dire che cosa sarebbe sbagliato fare
#! / bin / bash

logfile \u003d ". / mylog.dat"
inizio \u003d 100
fine \u003d"$(( $ inizio + 1000))! d "
Indice \u003d 0
Isthere \u003d 0
MOTORI \u003d ""

sed "$ inizio, $ fine" $ logfile | mentre leggere linea
fare
i \u003d `echo $ line | awk-F", " '(print $ 2)'`
Isthere \u003d 0
per la voce in "$ (MOTORI [@]}"; fare
if [ "$ i" \u003d "$ elemento"], quindi
echo "Aleady lì"
Isthere \u003d 1
pausa
fi
fatto
if [ "$ Isthere"-eq 0], quindi
echo "$ Isthere aggiungendo"
MOTORI [$ index] \u003d `expr $ i`
indice \u003d $ (($ indice + 1))
fi
# Echo $ line
fatto
echo $ (# $ index MOTORI [@]) # comunque mai a questo punto array è vuoto
for i in "$ (MOTORI [@]}"; fare
echo $ i
fatto
  #2 (permalink)  
Old 08-28-2007
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Ubicazione: Ashburn, Virginia
Messaggi: 9.124
Metti un paio di righe di dati in un file chiamato test.file. Prova questo ciclo di stile:
cat test.file | mentre leggere linea
e la gamma sarà vuota dopo il ciclo termina. Poi provare:
exec <test.file
mentre leggere linea
l'array e si dispone di dati dopo il ciclo termina. Il ciclo while è collocato in un subshell se è in una conduttura. ksh non farlo, ma non altre shell.
  #3 (permalink)  
Old 08-28-2007
jojan jojan is offline
Utente Registrato
  
 

Iscriviti Data: luglio 2007
Interventi: 12
Vuoi dire che devo cambiare la seguente riga
sed "$ inizio, $ fine" $ logfile | mentre leggere linea

a
exec <test.file
mentre leggere linea

Ma non voglio leggere completamente il file, ma solo da iniziare alla fine.
  #4 (permalink)  
Old 08-28-2007
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Ubicazione: Ashburn, Virginia
Messaggi: 9.124
Cambia la tua tecnica di sbarazzarsi della conduttura, per cambiare la tua shell ksh, o vivere con la matrice vuota. Queste sono le opzioni. Siamo spiacenti, ma non si riesce a tenere la conduttura, bash, e il contenuto array. Si ha da fare. Qui è un semplice script per illustrare il problema ...
Codice:
$ 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 shell è l'unico che conosco che popolano sia array. Questo è uno dei motivi che ho fortemente ksh preferiscono ad altre conchiglie. (L'altro è ksh co-processi). Quindi il mio suggerimento: passare a ksh.
  #5 (permalink)  
Old 08-28-2007
jojan jojan is offline
Utente Registrato
  
 

Iscriviti Data: luglio 2007
Interventi: 12
Fantastico, che era nuovo di essere, ho pensato di sbarazzarsi del la "scrittura del disco" accade mentre fuori mettendolo in un file.

sed -n "$ inizio, $ fine" $ logfile> motori
exec <motori
mentre leggere linea
fare
# Array inserire
fatto

Thankyou molto, sono utilizzati in modo tale che t bash, ksh non è facile da usare per me ora. Essa non ha il "completamento automatico quando si digita qualcosa e la chiave della corsa <tab>
  #6 (permalink)  
Old 08-28-2007
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Ubicazione: Ashburn, Virginia
Messaggi: 9.124
È possibile utilizzare bash come shell interattiva e ancora scrivere script in ksh.
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 09:50 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0