下面示例中的请求字符串插入版本变量,但保留大括号,我不明白为什么。
#!/bin/sh
version=2989
request="http://example.com/?version={$version}&therest"
echo "$request"
结果:
$ ~/script.sh
http://example.com/?version={2989}&therest
环境:
$ echo $0
-zsh
答案1
这{
是之前的$
。它应该是${version}
:)
答案2
比较:
$ version=1.2; echo "http://example.com/?version={$version}&therest"
http://example.com/?version={1.2}&therest
$ version=1.2; echo "http://example.com/?version=${version}&therest"
http://example.com/?version=1.2&therest
在引用内部,大括号被视为普通字符,除非它们是诸如 之类的某些构造的一部分${variableName}
。