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]}"
ここで問題になるのは、dialog --menuを使って配列を読み込むことです。しかし何らかの理由で私はそれを動作させる方法を見つけることができません。bashのダイアログ関数のパラメータとしての配列
EDIT 1:
Iはarray=('sda' 'super cool' 'sdb' 'less cool')
に配列を変更しようとした機能外側置換"${array[@]}"
と連動。しかし、それが機能すると、それはもはや機能しません。
を確保するために、コードを少し修正しました3番目の引数( '$ 3')を' dialog_menu'に 'DISK_SELECTION'とすると、' $ 4'のすべての引数は 'ARRAY'の内容になります。だから、 'dialog_menu"ディスク選択 "" ... "DISK_SELECTION" $ {ARRAY [@]} "'。規約の環境変数や内部シェル変数が完全に大文字になっているように、変数名( 'ARRAY'の代わりに' array'やその他の小文字の名前)を小文字にすることをお勧めします。変数名では大文字と小文字が区別されるため、環境や内部変数を誤って上書きすることは避けてください。 –
[議論](http://mywiki.wooledge.org/Arguments)は、さらに読むことができます:-) –