대화 상자 --menu는 bash에서 문자열 대신 정수를 출력합니다.

대화 상자 --menu는 bash에서 문자열 대신 정수를 출력합니다.

배열에서 항목을 가져오는 bash에 동적 메뉴를 만들었지만 사용자가 특정 항목을 선택하면 메뉴에 반환 코드(0 또는 1)가 표시됩니다.

repositorios=() ; i=0
while read -r line; do
    let i=$i+1
repositorios+=($i "$line")
done < <( find ~ -type d -name .git )

gerenciar_repositorios=$(dialog --stdout --extra-button --help-button \
--ok-label "Acessar repositório" \
--extra-label 'Criar repositório' \
--cancel-label 'Remover repositório' \
--help-label 'Cancelar' \
--backtitle "Bem vindo ao Git Bash `whoami`!" \
--title ' Gerenciar repositórios ' \
--menu 'Gerenciar repositórios' 0 0 0 \
${repositorios[@]}) ; echo $gerenciar_repositorios

; echo $gerenciar_repositorios테스트 목적 으로 만 사용하세요!

답변1

숙제에서

repositorios+=($i "$line")

이 정수는 각 행의 첫 번째 값이 됩니다. 그건상표설명서 설명에 언급됨--menu, 종료 시 인쇄됩니다. 두 번째 부분을 사용하려면 다음을 수행하십시오.

repositorios+=("$line" "$line")

그리고 사용--no-tags단일 열을 표시하는 옵션입니다. 이것no-items이 경우 옵션은 비슷한 결과를 제공합니다.

관련 정보