私に従ってください前の質問、日付ごとに単純なファイルセレクタを作成するために、次の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]}" )
。