Bash 脚本字符串插值使大括号完好无损

Bash 脚本字符串插值使大括号完好无损

下面示例中的请求字符串插入版本变量,但保留大括号,我不明白为什么。

#!/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}

相关内容