1

我想在 linux bash 中使用whiptail
当菜单项包含一个或多个破折号时显示菜单,whiptail 无法显示菜单。
只有一项的示例:

MQTT_PublisherArgs='-h {host} -t {topic} -m "{{message}}"'
whiptail --title "MQTT Configuration" --menu "" 0 70 0 "Publisher Arguments" "$MQTT_PublisherArgs"

当我用另一个字符(例如下划线)替换破折号时,菜单显示正确。
我试图逃避破折号,\-但反斜杠显示在菜单中。

如何显示菜单项-h {host} -t {topic} -m "{{message}}"

当用户选择此项目时,他将提示输入正确的参数

4

1 回答 1

2

代替

"$MQTT_PublisherArgs"

-- "$MQTT_PublisherArgs"

告诉您whiptail以下不是选项。

来自man whiptail

whiptail 将以破折号“-”开头的参数解释为参数。为了避免这种情况,并在例如菜单框项目中开始一些文本,使用破折号,whiptail 遵守接受特殊参数“--”的 getopt 约定,这意味着所有带有破折号的后续参数都将被逐字处理,而不是解析为选项。

于 2019-11-15T21:22:35.743 回答