Portál AbcLinuxu, 11. listopadu 2025 05:24
in_array() {
local hay needle=$1
shift
for hay; do
[[ $hay == $needle ]] && return 0
done
return 1
}
list=(
"information"
"data"
"performance"
);
if in_array "data" "${list[@]}"; then
echo "is not in array()"; # funguje to opačně
fi
Jak udělat negaci této podmínky (if in_array "data" "${list[@]}";), aniž bych musel upravit funkci in_array()?
if ! in_array "data" ...
Takto mi to hází syntax error.
in_array bych podle jejiho nazvu ocekaval, ze bude vracet true, kdyz dany retezec v poli najde. Takze z logiky veci bych tu funkci upravil.
true. Hodnota true je reprezenována nulou. Opravit je žádoucí ten výpis:
if in_array "data" "${list[@]}"; then
echo "is in array()";
fi
echo "is not in array()";
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.