İle zsh
:
if ((${#${(u)ARRAY_DISK_Quantity[@]}} == 1)); then
echo OK
else
echo not OK
fi
Benzersiz değerleri (u)
genişletmek için parametre genişletme bayrağı nerede . Böylece dizideki benzersiz değerlerin bir sayısını elde ediyoruz.
Değiştir == 1
, <= 1
boş bir dizinin iyi olduğunu düşünmek istediğinizdir.
İle ksh93
diziyi sıralayabilir ve ilk öğenin son öğeyle aynı olup olmadığını kontrol edebilirsiniz:
set -s -- "${ARRAY_DISK_Quantity[@]}"
if [ "$1" = "${@: -1}" ]; then
echo OK
else
echo not OK
fi
Ksh88 veya pdksh / mksh ile:
set -s -- "${ARRAY_DISK_Quantity[@]}"
if eval '[ "$1" = "${'"$#"'}" ]'; then
echo OK
else
echo not OK
fi
İle bash
, muhtemelen bir döngüye ihtiyacınız olacaktır:
unique_values() {
typeset i
for i do
[ "$1" = "$i" ] || return 1
done
return 0
}
if unique_values "${ARRAY_DISK_Quantity[@]}"; then
echo OK
else
echo not OK
fi
(dizi destekli Bourne benzeri tüm kabuklarla çalışır (ksh, zsh, bash, yash)).
Boş bir dizi için Tamam döndürdüğünü unutmayın. [ "$#" -gt 0 ] || return
İstemiyorsanız, işlevin başına bir ekleyin .