中可用。
我想知道是否有更熟悉yad
(另一个对话)的人知道动态列表是否可能,如果是这样,如何使用bash数组的内容将FALSE
分配给每个列表项?
我有一个管理多个LUKS分区的脚本,因此当用户选择挂载一个分区时,他们会看到一个尚未挂载的分区列表,可以从中进行下一次选择。所以结果是他们不能选择一个已经挂载的挂载点。
这是目前通过在终端中向用户展示列表来管理的,但如果可能的话,我想尝试使用yad
列表对话框。
从网上详细介绍yad
使用的少量页面中,我找不到任何关于动态列表的内容,这使我相信这很可能是不可能的。
以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
根据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"
。