使用带有包含破折号('-')的变量的鞭子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用带有包含破折号('-')的变量的鞭子相关的知识,希望对你有一定的参考价值。

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

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"

with

-- "$MQTT_PublisherArgs"

告诉whiptail以下不是选项。

来自man whiptail

whiptail将以短划线“-”开头的参数解释为参数。为了避免这种情况,并在菜单栏项(例如带破折号)中开始一些文本,whiptail表示getopt接受特殊参数“-”的约定,这意味着以下所有参数带破折号的字符应按原样对待,而不应视为选项。

以上是关于使用带有包含破折号('-')的变量的鞭子的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode482 密钥格式化

为啥不能在 bash 4.1.2 中访问带有破折号的环境变量?

《LeetCode之每日一题》:168.密钥格式化

Groovy基础语法详解

LeetCode 1694. 重新格式化电话号码

sed:无法使用变量替换最新出现的文本,包括“-”破折号