Portál AbcLinuxu, 1. listopadu 2025 04:07
case $VAR in
?? pokud je ve $VAR číslo ale není to nula spusť cd ..;;
?? pokud je ve $VAR nula spusť cd /home;;
?? pokud je ve $VAR cokoliv jiného spusť break;;
esac
Předem moc děkuji za pomoc.
Řešení dotazu:
case $VAR in 0) cd /home ;; [0-9]*) cd .. ;; *) break ;; esac
[0-9]* je hvězdička bashovská wildcard, není to regulérní výraz. Příklad tedy funguje jen za předpokladu, že řetězce začínající číslicí a pokračující čímkoliv typu "[0-9]cokoliv" považujete za číslo. Tedy například že "1pes" je číslo. Pokud 1pes číslo není, pak to lze udělat přesněji třeba takto:
if [[ "$VAR" == 0 ]]; then cd /home elif [[ "$VAR" =~ ^[0-9]+$ ]]; then cd .. else break :) fi
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.