2014-05-13 1 views
0

쉽게 체크리스트의 값을 반환하는 방법은 있습니까?메뉴를 떠날 때 - 체크리스트의 "기본 켜기/끄기"를 복원하는 방법은 무엇입니까?

"빨리", "호수"및 "자동차"를 선택하여 모든 항목을 "켜기"로 설정하십시오. 메뉴를 종료하고 다시 입력하면 동일한 선택 항목이 복원됩니까? 선택을 복원하기 위해

#! /bin/bash 
dialog   --checklist "package timing" 20 75 5 \ 
         "tree" "4 MB" on \ 
         "dog" "2 MB" on \ 
         "fast" "5 MB" off \ 
         "lake" "2 MB" off \ 
         "car" "3 MB" off 2> ./tmp.$$ 

답변

1

, 우리는 (귀하의 예를 tmp.$$에서) 그들이에 저장 한 파일을 읽고 dialog 명령에 적절한 장소에서 on를 삽입해야합니다. 우리는 연관 배열을 사용할 수 있습니다.

#! /bin/bash 
declare -A status=([dog]=on [tree]=on) # initialize "tree" and "dog" to be on 
while 
    dialog --checklist "package timing" 20 75 5 \ 
         "tree" "4 MB" "${status[tree]}" \ 
         "dog" "2 MB" "${status[dog]}" \ 
         "fast" "5 MB" "${status[fast]}" \ 
         "lake" "2 MB" "${status[lake]}" \ 
         "car" "3 MB" "${status[car]}" 2>tmp.$$ 
do : whatever you want 
    set -- $(<tmp.$$); set -- ${@/#/[}; set -- ${@/%/]=on} 
    eval declare -A status=([email protected]) 
done 
rm tmp.$$ 
관련 문제