로 zsh
:
if ((${#${(u)ARRAY_DISK_Quantity[@]}} == 1)); then
echo OK
else
echo not OK
fi
고유 값 (u)
을 확장하기위한 매개 변수 확장 플래그는 어디에 있습니까 ? 따라서 배열에서 고유 한 값의 수를 얻습니다.
교체 == 1
로 <= 1
당신은 빈 배열 확인을 고려해야 할 것입니다.
을 사용 ksh93
하면 배열을 정렬하고 첫 번째 요소가 마지막 요소와 같은지 확인할 수 있습니다.
set -s -- "${ARRAY_DISK_Quantity[@]}"
if [ "$1" = "${@: -1}" ]; then
echo OK
else
echo not OK
fi
ksh88 또는 pdksh / mksh를 사용하는 경우 :
set -s -- "${ARRAY_DISK_Quantity[@]}"
if eval '[ "$1" = "${'"$#"'}" ]'; then
echo OK
else
echo not OK
fi
를 사용하면 bash
아마도 루프가 필요할 것입니다.
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
배열 지원 (ksh, zsh, bash, yash)이있는 모든 Bourne과 같은 셸에서 작동합니다.
빈 배열에 대해서는 OK를 반환합니다. [ "$#" -gt 0 ] || return
원하지 않는 경우 함수 시작 부분에 a 를 추가하십시오 .