Quantcast
Channel: Linux.org.ru: Форум (тех. форум)
Viewing all articles
Browse latest Browse all 73859

Объясните, почему не работает этот скрипт как должен?

$
0
0

Всем привет!

Кто-нибудь может объяснить, почему результаты работы этого кода именно такие?

set -e
args=("$@")
dd=0                                                                            
dc=0                                                                  
dm=0                                                                 
declare -a array                                                                                            
for opt in $args; do                                                                                          
    if [[ "$opt" -eq "-dd" ]]; then                                                                           
        dd=1                                                                                                  
        echo "dd"                                                                                             
    elif [[ "$opt" -eq "-dc" ]]; then                                                                         
        dc=1                                                                                                  
        echo "dc"                                                                                             
    elif [[ "$opt" -eq "-dm" ]]; then                                                                         
        dm=1                                                                                                  
        echo "dm"                                                                                             
    else                                                                                                      
        array[${#array[*]}]="$opt"                                                                        
        echo "$opt"                                                                                           
        echo ${array[@]}                                                                                    
    fi                                                                                                        
done

$ ./myscript -dm -dc -dd arg1 arg2
dd

Ожидалось, что скрипт прочитает все флаги, которые ему переданы и все остальные аргументы скинет в другой массив, но, как видно, после первого if цикл заканчивается.

 ,


Viewing all articles
Browse latest Browse all 73859

Trending Articles