Portál AbcLinuxu, 26. listopadu 2025 01:38
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.