[Bash] Variabile sembra locale ma non lo è

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
mrbean87
Prode Principiante
Messaggi: 57
Iscrizione: lunedì 12 febbraio 2007, 14:25

[Bash] Variabile sembra locale ma non lo è

Messaggio da mrbean87 »

var="uno"
cat cue.cue | while read line; do
var="due"
done
echo $var

Qualcuno sa spiegarmi perché nello script sopraindicato viene stampato "uno" e non "due"?
Avatar utente
Volans
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4915
Iscrizione: domenica 4 dicembre 2005, 11:25
Contatti:

Re: [Bash] Variabile sembra locale ma non lo è

Messaggio da Volans »

Credo sia la pipe (|) che causi il problema separando i due processi, collegando il while solo al cat e non allo script in generale.

Se usi questa sintassi non succede:

Codice: Seleziona tutto

#!/bin/bash

var="uno"
while read line
do
      var="due"
      echo $var
done < cue.cue
echo $var
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti