Pattern in Shellscript

17/01/2008 - 01:39 von Chris Leick | Report spam
Hallo zusammen,

folgendes funktioniert:

#!/bin/bash

i=1
while [ $i -le 10 ]
do
case $i in
[3,5-7])
echo "weiter"
i=`/usr/bin/expr $i + 1`
continue
esac

echo $i
i=`/usr/bin/expr $i + 1`
done
echo "done"

Wenn ich das jedoch mit den Zahlen von 100 bis 200 versuche werden die
Pattern
[103,137-153])
nicht erkannt. Es werden alle Zahlen ausgegeben, weil die Shell die Zeichen
einzeln interpretiert (1,0,3,1,3,7-1,5,3). Auch mit Klammern {},() klappt
das nicht. Weiss jemand eine Lösung?

Gruss,
Chris
 

Lesen sie die antworten

#1 Chris Leick
17/01/2008 - 04:29 | Warnen spam
Alexander Griesser schrieb:
Michael Prokop wrote:

Wenn ich das jedoch mit den Zahlen von 100 bis 200 versuche werden die
Pattern
[103,137-153])



for seq in {1..160} ; do
case $seq in
103|137) echo weiter ;;
*) echo $seq ;;
esac
done



Naja, was spricht gegen folgendes?

for seq in 103 $(seq 137 153); do
[...]
done



Prima. Das klappt (und ist obendrein eleganter)
Besten Dank.

Chris

Ähnliche fragen