我尝试:
ctests() {
curl -X POST \
http://route.to.host/cucumber/execute-tests \
-H 'Authorization: Basic xxxxxxxxxxxxxxxxxxxxx' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{ "text": "cucumber! alltests products=$1" }'
}
并想这样称呼
> ctests someproduct
但是1美元不会解决。我尝试了$ {1},但还是一样。 有一个好的解决方案吗?
答案 0 :(得分:2)
$1
无法解析,因为您使用的是单行'
,它禁止可变分辨率。
改为使用双引号("
)(您必须在双引号内转义双引号;或在双引号内使用单引号;具体取决于您的上下文)>
ctests() {
curl -X POST \
http://route.to.host/cucumber/execute-tests \
-H 'Authorization: Basic xxxxxxxxxxxxxxxxxxxxx' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d "{ \"text\": \"cucumber! alltests products=$1\" }"
}
引用bash(1)
:
QUOTING
[...]
将字符括在单引号中可保留引号内每个字符的字面值。即使在前面加上反斜杠,也不能在单引号之间引起单引号。
用双引号引起来的字符将保留引号中所有字符的文字值,但$ [...]