2

我想知道是否有更熟悉yad(又一个对话)的人知道动态列表是否可能,如果可以,如何使用分配FALSE给每个列表项的 bash 数组的内容来实现?

我有一个管理多个 LUKS 分区的脚本,因此当用户选择挂载一个分区时,他们会看到一个尚未挂载的分区列表,以便进行下一次选择。所以结果是他们无法选择已经安装的安装点。

目前这是通过在终端中向用户显示列表来管理的,但是如果可以使用动态列表,我想尝试使用yad列表对话框。

yad在线详细说明使用情况的少量页面中,我找不到有关动态列表的任何内容,这使我相信这很可能是不可能的。

4

2 回答 2

3

取自这里的 zenity 示例,您可以执行以下操作:

devsToMnt=$(for f in "${part_list_array[@]}" ; do echo FALSE ; echo "$f" ; done | yad --list --center --height="400" --checklist --column="Select" --column="Device to mount:" --print-column="2" --multiple --separator=" ")

并且用户选择的任何分区都将可用$devsToMnt

于 2014-08-07T19:52:48.977 回答
1

根据wiki上的示例,我认为某些东西的效果是

mounts=( "foo" "bar" "baz" )

mp=$(yad --width 300 --entry --title "Mount?" \
    --button="Mount it." \
    --text "Choose mountpoint:" \
    --entry-text \
    "${mounts[@]}")

echo "let's mount $mp"

应该管用。

于 2014-08-07T18:26:31.327 回答