У меня есть следующий код удара:
DNS_RECORD_NAME="\"_acme-challenge\""
linode-cli domains records-list 1020562 --pretty --json |
grep '"name": $DNS_RECORD_NAME'
Вывод должен быть похожим на это:
"name": "_acme-challenge"
но я получил пустой результат. Если я изменяю следующую строку
grep '"name": $DNS_RECORD_NAME"
кому:
grep '"name": "_acme-challenge"'
Я получил корректный вывод.
Но я должен использовать переменную. Как я использую строковую переменную (который содержит двойную кавычку) в grep?
При использовании одинарных кавычек, шаблон взят в качестве литеральной строки, таким образом,
grep '"name": $DNS_RECORD_NAME'
попытается соответствовать литеральной строке
"name": $DNS_RECORD_NAME
переменная не расширена.
Чтобы это работало, Вы можете:
grep "\"name\": $DNS_RECORD_NAME"
или
grep '"name": '"$DNS_RECORD_NAME"
здесь переменная $DNS_RECORD_NAME
расширен.