无关:这一直在我的脑海里。
下面是一个卷曲功能,如下所示(为了便于阅读,我将它放在多行上):
fixVersionQuery='https://thejirainstall.com/jira/rest/api/2/project/ON/versions?';
myJSONResponse=`curl -u username:password -X GET -H "Content-Type: application/json" \
--insecure --silent $fixVersionQuery |jq '.[] | {id,name} | \
select(.name=="Version-1.2.3") | .["id"]'`;
以上作品。但是,我想查询一个名称我传递给该函数的版本。因此"Version-1.2.3"
可能是"${JIRA_FIXVERSION}"
等变量。问题是,在上面的行中,我无法弄清楚撇号的哪些组合可以使用返回标记或引号。虽然我知道函数的一般结构将是......
JIRA_FIXVERSION;
fixVersionQuery='https://thejirainstall.com/jira/rest/api/2/project/ON/versions?';
myJSONResponse=`curl -u username:password -X GET -H "Content-Type: application/json" \
--insecure --silent $fixVersionQuery |jq '.[] | {id,name} | \
select(.name=="'$JIRA_FIXVERSION'") | .["id"]'`;
如果我使用了"'$JIRA_FIXVERSION'"
或$ {JIRA_FIXVERSION},则上面会出现编译错误。
答案 0 :(得分:1)
我想你只需要引用双引号(这样它们就会被shell作为文字字符单独留下)。 shell通常会在反引号中替换变量,我想你只想在扩展的JIRA_FIXVERSION周围加上双引号,这样就会生成一个类似你给出的例子的命令(包含"Version-..."
)。
示例:
$ XX=bla; echo `echo kklkj | sed s/kk/\"$XX\"/g`
"bla"lkj
或者,事实上,更简单:
XX=bla; echo `echo \"$XX\"`
- > " BLA"
答案 1 :(得分:0)
好的,
我最终得到了它。所以
$jiraReleases "Version1.2.3"
JIRA_FIXVERSION=$1
.[] | {id,name} | select(.name=='\""${JIRA_FIXVERSION}"\"')