2012-09-17 40 views

Trả lời

6

Về mặt kỹ thuật, các chỉ điều bị hỏng có khoảng trắng. Không đặt dấu cách xung quanh các toán tử của bạn theo cú pháp shell:

config[$i]="value2" 

Tuy nhiên, có rất nhiều điều nhỏ khác bạn có thể muốn suy nghĩ. Ví dụ: nếu một phần tử của config có thể chứa khoảng trắng, kiểm tra có thể bị hỏng. Sử dụng dấu ngoặc kép hoặc từ khóa thử nghiệm [[ để tránh điều đó.

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

seq là thực thi ngoài chuẩn. Bạn nên sử dụng cú pháp lặp lại dựng sẵn. Hơn nữa, giả sử lặp xảy ra trên tất cả các yếu tố trong config, bạn có lẽ chỉ muốn làm:

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

Tháo 2 không gian thêm như thế này:

config[$i]="value2" 
Các vấn đề liên quan