Portál AbcLinuxu, 12. května 2025 04:35
Budeme-li předpokládat, že "pouze jednu" znamená "právě jednu", tak třeba
if [ "${a//[!.]/}" = "." ]; then ... fi
Pokud to má znamenat "nejvýše jednu", tak např.
if [ "${a%.*}" = "${a%%.*}" ]; then ... fi
UF, absolutně nevím co jste tím myslel, teď jste mě dostal :D :D :D Potřebuji podmínku, která zjistí jestlí nějaká proměnná obsahuje pouze jednu jedinou tečku ;)Budeme-li předpokládat, že "pouze jednu" znamená "právě jednu", tak třeba
Pokud to má znamenat "nejvýše jednu", tak např.
[[ "$promenna" == "." ]] && echo "Proměnná promenná obsahuje pouze jednu jedinou tečku a njic víc?":D
[[ $promenna =~ ^[^.]*\.[^.]*$ ]] && echo "Proměnná $promenna obsahuje právě jednu tečku."Pro starší verze či jiné shelly třeba:
echo $promenna | grep -q "^[^.]*\.[^.]*$" [[ $? -eq 0 ]] && echo "Proměnná $promenna obsahuje právě jednu tečku."Nebo pokud vám stačí poznat, že proměnná obsohuje nejvýše jednu tečku (tedy jednu nebo žádnou) tak třeba takto:
[[ ${promenna#*.} == ${promenna##*.} ]] && echo "Promenna $promenna není vícetečková."Asi by to šlo i nějak jednoduššeji.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.