对话框 --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在这种情况下,选项会给出类似的结果。

相关内容