我有以下 bash 代码:
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
被扩展。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句