Ti dice che se vuoi, puoi eseguire una serie di comandi inserendoli tra le parentesi tonde. Ti dice che tutti i comandi vengono eseguiti in una sotto-shell e che quindi tutte le modifiche fatte a variabili d'ambiente, o settaggi di altre variabili d'ambiente non hanno effetto nella shell attuale. Infine ti dice che lo stato di ritorno è lo stato di ritorno dell'ultimo comando eseguito.danix85 ha scritto:...e volevo capire meglio...Codice: Seleziona tutto
Compound Commands A compound command is one of the following: (list) list is executed in a subshell environment (see COMMAND EXECUTION ENVIRONMENT below). Variable assignments and builtin commands that affect the shell's environment do not remain in effect after the command completes. The return status is the exit status of list.
Cos'è lo stato di ritorno?
Tutti i programmi quando vengono invocati escono facendo una chiamata di sistema tipo "exit status". Sotto linux o unix-like system i programmi che finiscono la loro esecuzione in modo corretto escono con uno stato di uscita pari a 0. In caso di errori di ogni tipo, escono con uno stato diverso da 0.
Il comando grep ad esempio, se non trovo quello che si sta cercando ritorna uno stato di uscita 1. Lo stato di uscita dell'ultimo comando eseguito viene memorizzato dalla shell nella variabile '?'.
Per fare un esempio in modo da farti capire ciò che hai chiesto esegui:
Codice: Seleziona tutto
> (echo ciao | grep ciao);
> echo $?;
0
Facendo invece:
Codice: Seleziona tutto
> (echo ciao | grep bho);
> echo $?
1
Codice: Seleziona tutto
> (echo ciao; CASA=bho; echo $CASA);
ciao
bho
> echo $CASA;
Spero di averti chiarito le idee,
Spina
