Bash скрипт - Как поместить двойную кавычку вокруг строкового значения в переменную? - PullRequest
0 голосов
/ 04 февраля 2020

В скрипте bash у меня есть переменная, скажем, $ date, которая получает строковое значение из какой-то другой функции, скажем, значение $ date равно 04 февраля 2020 года. Я хочу преобразовать значение mosquitto_pub в $ date, но оно не могу, потому что mosquitto_pub не ожидает пробела после 04. Я понимаю, что я должен поместить двойную кавычку около 04 февраля 2020 года (как будто $ date = '"04 февраля 2020"'), как это сделать?

Спасибо

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Все, что вам нужно сделать, это указать расширение параметра. С учетом

date="04 Feb 2020"

командная строка, подобная

some_command $date

, передаст 3 аргумента (04, Feb и 2020) в some_command после применения оболочкой слова -разделение на результат раскрытия параметра.

Чтобы предотвратить разбиение слов, вам просто нужно заключить в кавычки расширение параметра, а не добавлять к результату буквальные кавычки.

some_command "$date"
0 голосов
/ 04 февраля 2020

Избегайте двойных кавычек:

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