2013-09-06 16 views
5

Sono molto nuovo nello scripting di bash e, mentre cercavo informazioni online, ho trovato molti consigli apparentemente contraddittori. La cosa di cui sono più confuso è il $ davanti ai nomi delle variabili. La mia domanda principale è, quando è e non è appropriato usare quella sintassi? Grazie!

risposta

7

Fondamentalmente, viene utilizzato quando si fa riferimento alla variabile, ma non quando la si definisce.

Quando si definisce una variabile non utilizzarlo:

value=233 

dovete usarli quando si chiama la variabile:

echo "$value" 

ci sono alcune eccezioni a questa regola di base. Ad esempio in espressioni matematiche, come etarion comments.


un'altra domanda: se io dichiaro un my_array array e scorrere con un contatore i, sarebbe la chiamata a tale deve essere $ my_array [$ i]?

vedere l'esempio:

$ myarray=("one" "two" "three") 
$ echo ${myarray[1]}  #note that the first index is 0 
two 

per scorrere attraverso di essa, questo codice rende:

for item in "${myarray[@]}" 
do 
    echo $item 
done 

Nel nostro caso:

$ for item in "${myarray[@]}"; do echo $item; done 
one 
two 
three 
+0

Grazie, un'altra domanda: se dichiaro un array my_array e iterate attraverso di esso con un contatore i, la chiamata a questo deve essere $ my_array [$ i]? – thnkwthprtls

+0

@thnkwthprtls vedere la mia risposta aggiornata. L'hai quasi avuto. – fedorqui

+2

Non è del tutto corretto. Ad esempio, nel contesto matematico non lo usi quando fai riferimento alla variabile - 'x = 2; y = 1; sia z = ++ x * ++ y; echo $ z' – etarion

1

Sono nessun utente bash questo sa troppo. Ma ogni volta che si dichiara una variabile non si usa $, e ogni volta che si desidera richiamare quella variabile e utilizzare il suo valore si usa il segno $.

Problemi correlati