Existem vários erros no seu script, por ex. você não deve dar ao iterador de loop o mesmo nome que o próprio array. No entanto, você não precisa de nenhum loop para essa tarefa, basta colocar todos os elementos da matriz de uma só vez com o índice de matriz especial @
:
value=(Choice1 "" Choice2 "" Choice3 "" Choice4 "")
whiptail --title "xx" --menu "choose" 16 78 10 "${value[@]}"
Observe que a string vazia está dentro daspas ""
- essa é a descrição exigida pela opção whiptail
menu, sem isso você trataria Choice
e Choice4
como descrição:
Choice1 Choice2
Choice3 Choice4
o que provavelmente não é o que você quer.