[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: brace expansion vs. variable expansion



Am Samstag, den 26.05.2012, 16:06 +0200 schrieb Simon Reinhardt:
> Hallo Liste,
> 
> habe folgendes Problem:
> In einem Bash-Script soll die Variable i über einen bestimmten Bereich
> laufen, den ich über die Parameter $1, $2 und $3 angebe.
> Hab dann das probiert:
> #/bin/bash
> 
> for i in {$1..$2..$3}; do
> echo "$i"
> done
> 
> das geht aber leider nicht, weil brace expansion vor variable expansion
> ausgeführt wird.
> Was kann man da machen?

Wenn die Parameter Zahlen sind, sollte es so gehen:

#!/bin/bash
for (( i=${1} ; i<${2} ; i+=${3} )) ; do
    echo "$i"
done

Die erste Zahl ist der Startwert,
die zweite Zahl der Endwert und
die dritte Zahl die Schrittweite.

Oder meinst du etwas anders?

Wenn die Schleife die Parameter durchlaufen soll (egal ob Zahl,
Buchstaben oder Wörter), dann so:

#!/bin/bash
for i in $* ; do
    echo "$i"
done

-- 
mfG Sascha

Wie man sein Kind nicht nennen sollte: 
  Don R. Wetter 

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: