Bash脚本-如何在变量中的字符串值周围加双引号?

Bash脚本-如何在变量中的字符串值周围加双引号?,bash,double-quotes,mosquitto,Bash,Double Quotes,Mosquitto,在bash脚本中,我有一个变量,比如$date,它从其他函数获取字符串值,比如$date的值是04 Feb 2020。我想用$date来表示mosquitto_pub的值,但不能,因为mosquitto_pub期望04之后没有空间。我知道我必须在2020年2月4日左右提出双报价(好像$date=“'2020年2月4日”“),怎么做 谢谢避开双引号: d="04 Feb 2010"; d2="\"$d\""; echo $d2 "04 Feb 2010" 您所需要做的就是引用参数展开式。给定 d

在bash脚本中,我有一个变量,比如$date,它从其他函数获取字符串值,比如$date的值是04 Feb 2020。我想用$date来表示mosquitto_pub的值,但不能,因为mosquitto_pub期望04之后没有空间。我知道我必须在2020年2月4日左右提出双报价(好像$date=“'2020年2月4日”“),怎么做


谢谢

避开双引号:

d="04 Feb 2010"; d2="\"$d\""; echo $d2
"04 Feb 2010"

您所需要做的就是引用参数展开式。给定

date="04 Feb 2020"
像这样的命令行

some_command $date
在shell对参数扩展的结果应用分词后,将把3个参数(
04
Feb
2020
)传递给
some_命令

为了防止分词,您只需要引用参数展开式,而不是在结果中添加文字引号

some_command "$date"

谢谢。你的例子中有双引号;但是mosquitto_pub仍然报告“错误:未知选项'Feb.”您知道什么可能导致此错误吗?生成此错误的bash脚本命令:。。。Mosquetto_pub-h localhost-t purpleair/lastseenddmmyy-m$lastseenddmmyy。。。。$lastseenddmmyy包含“2020年2月4日”。当我回显变量时,双引号就在那里。。。。。当我在终端上运行它时,它没有问题。。。。mosquitto_pub-h localhost-t purpleair/lastseenddmmyy-m“2020年2月4日”…变量中不包含引号。您只需引用参数展开式<代码>日期=“2020年2月4日”;一些命令“$date”