Portál AbcLinuxu, 12. května 2025 11:56
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;; esacPř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.