2012-09-17 24 views

Odpowiedz

6

Technicznie, tylko Przerwana rzecz to biała spacja. Nie należy umieszczać spacji wokół operatorów w składni powłoki:

config[$i]="value2" 

Jednakże, istnieje wiele innych małych rzeczy, może warto pomyśleć. Na przykład, jeśli element config może zawierać białą przestrzeń, test może się zepsuć. Użyj słowa kluczowego lub parametru testowego [[, aby tego uniknąć.

… if [[ ${config[$i]} = "value1" ]] 
    then config[$i]="value2" … 

seq jest nietypowa wykonywalny zewnętrznych. Lepiej byłoby użyć wbudowanej składni iteracyjnej. Ponadto, zakładając, że dzieje się na iterację wszystkich elementów w config, prawdopodobnie po prostu chcesz zrobić:

for ((i=0; i<${#config[@]}; i++)); 
do 
    if [[ ${config[$i]} = "value1" ]] 
     then config[$i]="value2" 
    fi 
done 
2

Usuń 2 dodatkowe spacje tak:

config[$i]="value2" 
Powiązane problemy