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
Dubbio? [campo di applicazione delle variabili] qzv2jm Shell scripting e di programmazione 1 03-04-2008 09:19 AM
Accesso Awk Variabili Fuori Campo Amruta Pitkar Shell scripting e di programmazione 7 01-15-2008 09:17 AM
Accesso Awk Variabili Fuori Campo Amruta Pitkar UNIX e avanzata per utenti esperti 2 10-26-2006 10:35 PM
ambito sundaresh Di programmazione ad alto livello 7 06-28-2006 12:19 PM
C + +: campo di applicazione, file diversi, ecc. JP Di programmazione ad alto livello 1 04-25-2002 05:41 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 05-22-2008
dinjo_jo dinjo_jo is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2008
Interventi: 73
Variabili di campo di applicazione.

Salve,
Sto cercando di cambiare il valore della variabile in un ciclo while, tuttavia il suo lavoro, non sembra che il problema con subshells durante la lettura del file.

#! / bin / sh
FLAG \u003d 0;
cat nome_file | mentre leggere i dati
fare
FLAG \u003d 1;
fatto

echo $ BANDIERA

In caso di visualizzazione 1 invece mostra 0
  #2 (permalink)  
Old 05-22-2008
namishtiwari namishtiwari is offline Forum Advisor  
Utente Registrato
  
 

Join Date: Aug 2007
Località: Bangalore
Interventi: 377
Citazione:
Originalmente inviato da dinjo_jo View Post
Salve,
Sto cercando di cambiare il valore della variabile in un ciclo while, tuttavia il suo lavoro, non sembra che il problema con subshells durante la lettura del file.

#! / bin / sh
FLAG \u003d 0;
cat nome_file | mentre leggere i dati
fare
FLAG \u003d 1;
fatto

echo $ BANDIERA

In caso di visualizzazione 1 invece mostra 0
Si visualizzerà solo il valore di 1 BANDIERA come quando la condizione è soddisfatta, il che significa che c'è qualche file che si sta tentando di gatto e di linee di lettura. Quindi, per controllare il file prima.

Grazie ..
  #3 (permalink)  
Old 05-22-2008
dinjo_jo dinjo_jo is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2008
Interventi: 73
Il file esiste, ma in quanto non vi è un ciclo while ogni legge un file, esso crea una subshell, in modo che il valore è perso non appena ciclo while termina.
  #4 (permalink)  
Old 05-22-2008
subin_bala subin_bala is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2008
Interventi: 57
#! / bin / sh
FLAG \u003d 0;
leggere i dati, mentre
fare
FLAG \u003d 1;
fatto <filenname

echo $ BANDIERA

provare questa bandiera e avranno valore 1
  #5 (permalink)  
Old 05-23-2008
dinjo_jo dinjo_jo is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2008
Interventi: 73
Purtroppo, che funziona solo in shell bash.
  #6 (permalink)  
Old 05-23-2008
abhisek.says abhisek.says is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2008
Interventi: 9
Smile controllo per i file esistenti prima

Salve,

Prima yo chech per l'esistenza del file e poi

FLAG \u003d 0;
mentre leggere il file
fare
FLAG \u003d 1;
fatto <file_input
echo "$ BANDIERA"

Penso che questo dovrebbe funzionare ...
  #7 (permalink)  
Old 05-23-2008
rikxik's Avatar
rikxik rikxik is offline
Utente Registrato
  
 

Iscriviti Data: dicembre 2007
Interventi: 250
Non ci sono solo una spiegazione e il problema principale non è se il file esiste. È ciò che viene utilizzato shell. Considerate questo:

Codice:
$ cat fcheck
#!/bin/sh

FLAG=0;
cat filename | while read data
do
echo "data=$data"
FLAG=1;
done

echo $FLAG
Bash
Codice:
$ bash fcheck
data=line1
data=line2
0
Bourne:
Codice:
$ sh fcheck
data=line1
data=line2
0
Korn:
Codice:
$ ksh fcheck
data=line1
data=line2
1
Così, per sh, il comportamento è come previsto.
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 è 08:25 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