gpt4 book ai didi

bash - 如何在 zenity 中获取不同形式的值

转载 作者:行者123 更新时间:2023-11-29 09:20:30 26 4
gpt4 key购买 nike

我想在 zenity 中获取表单的值(用户写入的 Ipaddress 值)以便使用 ffmpeg 进行一些视频流传输,我尝试了几个示例,例如列表、表单等

zenity --forms --title="Add Friend" --text="Enter Multicast address" --separator="," --add-entry="IP address" --add-entry="PORT" 

if zenity --list --title="Record Video Stream"  --text "Enter the Multicast IP address and port of each of the video stream" --column "Video IP" --print-column=2 --multiple --column "PORT" --editable ip="0.0.0.0" port="2002"

最佳答案

zenity 的输出是输入的文本,由 --separator 字符分隔。退出代码是它是否被接受(即选择了OKCancel)。

例如(在 bash 中):

OUTPUT=$(zenity --forms --title="Add Friend" --text="Enter Multicast address" --separator="," --add-entry="IP address" --add-entry="PORT")
accepted=$?
if ((accepted != 0)); then
echo "something went wrong"
exit 1
fi

ip=$(awk -F, '{print $1}' <<<$OUTPUT)
port=$(awk -F, '{print $2}' <<<$OUTPUT)

这让您从 zenity 获取 ip 地址到 ip 变量,并将端口从 zenity 表单获取到 port 变量。

第二个示例稍微复杂一些,它使用“可编辑”模板,这意味着如果数据未更改,您不会得到任何输出,但它遵循与前一个示例类似的模式。现在,因为您说的是 --print-column=,它只在输出中显示该列。不幸的是,--list 用于从项目列表中选择一行或多行。可以编辑多行,但您必须选择每一行以获取该行的输出,即使在对数据进行更改之后也是如此。在这种情况下,因为您没有指定 --separator 选项,所以使用默认分隔符 |

在第二种情况下,从用户输入的角度来看,使用可编辑和列表输入并不是真正设计列表的目的。

关于bash - 如何在 zenity 中获取不同形式的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21368107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com