Bash 将whiptail与包含dash(';-';)的变量一起使用
我想在linux bash中使用Bash 将whiptail与包含dash(';-';)的变量一起使用,bash,whiptail,Bash,Whiptail,我想在linux bash中使用whiptail 当菜单项包含一个或多个破折号时,whiptail无法显示菜单。 仅包含一项的示例: MQTT_PublisherArgs='-h {host} -t {topic} -m "{{message}}"' whiptail --title "MQTT Configuration" --menu "" 0 70 0 "Publisher Arguments" "$MQTT_PublisherArgs" 当我用另一个字符(例如下划线)替换虚线时,菜单显
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}}
当用户选择此项时,系统将提示用户输入正确的参数
"$MQTT_PublisherArgs"
与
告诉whiptail
以下选项不是选项
从man whiptail
:
whiptail将以破折号“-”开头的参数解释为参数。为了避免这种情况,,
并以一些文本开始,例如,一个菜单框项,带有破折号,whiptail表示对getopt的尊重
接受特殊论点的惯例“-”,这意味着以下所有论点
with破折号将被逐字处理,而不是作为选项解析
正如我所读到的,OP在字符串变量中不是有几个不同的参数吗?因此,我不相信正确的方法是用数组替换它。
-- "$MQTT_PublisherArgs"