動的に定義された選択配列を使用するダイアログボックスラジオのリスト

動的に定義された選択配列を使用するダイアログボックスラジオのリスト

私に従ってください前の質問、日付ごとに単純なファイルセレクタを作成するために、次のMWEを作成しました。

filesArr=( $(ls -1rt ??????????_?) )
nfiles=${#filesArr[@]}
iLastFile=$[nfiles-1]
choiceArr=( )
for i in `seq 0 $iLastFile`; do
    filesSN[i]=${filesArr[i]:11:1}
    year=${filesArr[i]:0:2}
    month=${filesArr[i]:2:2}
    day=${filesArr[i]:4:2}
    hour=${filesArr[i]:6:2}
    min=${filesArr[i]:8:2}
    wday=`date -d $month/$day/$year '+%a'`
    filesDate[i]="'$wday $day/$month/$year $hour:$min'"
    choiceArr=( ${choiceArr[@]} "'${filesSN[i]}'" "${filesDate[i]}" )
done

#choiceArr=( '4' 'Fri 23/01/15 10:09' '1' 'Mon 02/02/15 09:15' '3' 'Wed 25/03/15 11:38' '2' 'Sat 18/04/15 23:45' )
echo ${choiceArr[@]}

dialog --title "Backup target file"  \
--radiolist "Select the file to replace" 15 60 4 \
"${choiceArr[0]}" "${choiceArr[1]}" ON \
"${choiceArr[2]}" "${choiceArr[3]}" OFF \
"${choiceArr[4]}" "${choiceArr[5]}" OFF \
"${choiceArr[6]}" "${choiceArr[7]}" OFF 2>/tmp/menu.sh.$$

問題は、これが放送リストの選択を混在させることです。

(*) '4'       'Fri
( ) 23/01/15  10:09'
( ) '1'       'Mon
( ) 02/02/15  09:15'

ただし、同じforループを使用して配列を作成し、それを画面に印刷してから同じ変数に明示的に割り当てると(つまり、コメント行のコメント解除)、正常に動作します。

誰でもどんな提案がありますか?

ベストアンサー1

@muruのコメントによると、ループ内の最後の行をchoiceArr+=( "'${filesSN[i]}'" "${filesDate[i]}" )

おすすめ記事