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