Portál AbcLinuxu, 12. května 2025 07:33
in_array() { for x in "${a[@]}" do if [ "$1" == "x" ] then return 0 else return 1 fi done } if in_array "czech" then echo je else echo neni fi
in_array() { for x in "${a[@]}" do if [ "$1" == "$x" ] then return 0 break fi done return 1 } in_array "czech" if [ $? == 0 ] then echo "je" else echo "neni" fi
a[0]="x" a[1]="czech" a[2]="y"a uvidíte, jak vám to pěkně půjde. Pro ladění doporučuji třeba toto:
for x in "${a[@]}" do echo "arr: $x == $1"
break
je nadbytečný.
$ declare -A dict $ dict["foo"]="foo" $ if [[ ${dict["foo"]} != '' ]]; then echo "je tam"; fi je tam $ if [[ ${dict[42]} != '' ]]; then echo "je tam"; fi $Nejsem si teda jistý, jak je to interně implementováno, takže asociativní pole nemusí garantovat pořadí, ale v bashi člověk nikdy neví.
pole=( a b c ) IFS='|' [[ "${pole[*]}" == *a* ]] && echo hura
pole=( aaa bb c ) IFS='|' [[ "|${a[*]}|" == *"|bb|"* ]] && echo hura
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.