Portál AbcLinuxu, 19. prosince 2025 01:05
for (( ii=0 ; $ii <= 99 ; ii++ )) ; do
for xx in a b c d e f; do
# vyjímky - přeskočit
if [ "$xx$ii" == "c0" ]; then
continue
fi
if [ "$xx$ii" == "d7" ]; then
continue
fi
echo zpracování $xx$ii
done
done
Abych nemusel psát na každou vyjímku extra podmínku.
Něco takového:
for (( ii=0 ; $ii <= 99 ; ii++ )) ; do
for xx in a b c d e f; do
# vyjímky - přeskočit
if "$xx$ii" NOT IN ("c0", "d7"); then <-- pseudokód
continue
fi
echo zpracování $xx$ii
done
done
Řešení dotazu:
case "$xx$ii" in
"c0")
"d7")
continue
;;
*)
;;
esac
kleptor@morrigan:~:0:$ a=c0
kleptor@morrigan:~:0:$ [[ -z ${a#@(c0|d7)} ]]
kleptor@morrigan:~:0:$ echo $?
0
kleptor@morrigan:~:0:$ a=ahoj
kleptor@morrigan:~:0:$ [[ -z ${a#@(c0|d7)} ]]
kleptor@morrigan:~:1:$ echo $?
1
Všem přispěvatelům děkuji
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.