1
#!/bin/bash
function dialog_menu()
{
arr["$4"]="$(dialog --clear --backtitle "Archlinux Installer" --title "$1" --menu $2 10 60 5 $3 --output-fd 1)"
}
ARRAY[0]="\"sda\""
ARRAY[1]="\"The main disk\""
dialog_menu "Disk Selection" "Please, choose where to install Archlinux" "$(echo ${ARRAY[*]})" DISK_SELECTION
echo "${arr[DISK_SELECTION]}"
Bir iletişim işlevinin bir parametresi olarak dizi Buradaki zorluk dizimi okumak için dialog --menu almaktır. Ama bir nedenden dolayı çalışmasını sağlamak için bir yol bulamıyorum.Bash
DÜZENLEME 1:
I fonksiyonu "${array[@]}"
ile çalışır dışında array=('sda' 'super cool' 'sdb' 'less cool')
ve ikameye dizi değiştirme çalıştı. Ama bir kez fonksiyonda, artık işe yaramıyor.
seni yapmak önermek biraz daha iyi okunmasını sağlayan kod modifiye dialog_menu için üçüncü argüman ('$ 3')' DISK_SELECTION', sonra '$ 4'den tüm argümanlar' ARRAY'ın içeriği olacaktır. Yani, dialog_menu "Disk seçimi" "Lütfen ..." DISK_SELECTION "$ {ARRAY [@]}" '. Ayrıca, değişken isimlerinizi (örneğin, ARRAY veya başka bir küçük harfli ad yerine 'dizi) bir kongre ortamı değişkenleri ile küçültmenizi ve iç kabuk değişkenlerini tamamen büyük harfle yazmanızı öneririz. Değişken adlar büyük/küçük harfe duyarlı olduğundan, bu kural çevresel ve içsel değişkenleri yanlışlıkla geçersiz kılar. –
[Argümanlar] (http://mywiki.wooledge.org/Arguments) daha fazla okumak ve öğrenmek için harika bir kaynaktır :-) –