Eu criei um menu dinâmico no bash que obtém seus itens de uma matriz, mas quando o usuário seleciona um item específico, o menu exibe o código de retorno (0 ou 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
O
; echo $gerenciar_repositorios
é apenas para fins de teste!
Em sua tarefa
o número inteiro torna-se o primeiro valor em cada linha. Essa é a tag referida na descrição manual de
--menu
, que é impressa na saída. Se você quiser usar a segunda parte, você pode fazere use a
--no-tags
opção para exibir uma única coluna. Ano-items
opção daria um resultado semelhante neste caso.