2017-12-31 40 views
0

Ich möchte ein Bash-Skript mit unbegrenzten Parametern machen.Bash - Parameter pro Paar mit while

Beispiel:

sh example.sh data1 data2 data3 data4 data5 data6 dataN 

Und ich möchte zwei von zwei, die Parameter erhalten. Ich habe versucht, mit do-while:

while (("$#")); do 
    echo $1 $2 
    shift 
done 

Aber die letzten ist immer allein:

data1 data2 
data2 data3 
data3 data4 
data4 data5 
data5 data6 
data6 

Was ist der beste Weg, dies zu tun?

Antwort

3

Sie müssen zwei Argumente verschieben, nicht nur eines; shift ohne Argumente ist das gleiche wie shift 1.

while (($#)); do 
    echo "$1" "$2" 
    shift 2 
done 
+0

Es funktioniert perfekt. Vielen Dank ! – user1911