Portál AbcLinuxu, 4. května 2025 23:04
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" ...
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.