동적으로 정의된 선택 배열을 사용하는 대화 상자 라디오 목록

동적으로 정의된 선택 배열을 사용하는 대화 상자 라디오 목록

나를 따라와이전 질문, 날짜별로 간단한 파일 선택기를 만들기 위해 다음 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]}" ).

관련 정보