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