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}引用符内で、中括弧は、次のような一部の構文の一部でない限り、通常の文字として扱われます。

関連情報