{}
envvarがないと空のJSONエコーが得られないようです。}
設定すると、出力に末尾があるか、エスケープが表示されます。
bash-3.2$ unset X
bash-3.2$ echo "${X:-{}}"
{}
bash-3.2$ X=y
bash-3.2$ echo "${X:-{}}"
y}
bash-3.2$ echo "${X:-{\}}"
y
bash-3.2$ unset X
bash-3.2$ echo "${X:-{\}}"
{\}
bash-3.2$ echo "${X:-'{}'}"
'{}'
bash-3.2$ X=z
bash-3.2$ echo "${X:-'{}'}"
z
どうすれば正しく脱出できますか?
ベストアンサー1
中かっこを引用すると、次のようになります。
bash-3.2$ echo "${X:-"{}"}"
{}
bash-3.2$ X=y
bash-3.2$ echo "${X:-"{}"}"
y
bash-3.2$ unset X
bash-3.2$ echo "${X:-"{}"}"
{}
内部にダブルこれには引用符が必要です。これは楽しいようですが、文法的には大丈夫です。
一重引用符は機能しません。その理由は完全にはわかりません。これは最後と履歴書ではなく、実際の入れ子になった引用です。スペースを入れて確認できます。しかし、Doubleもうまく動作します。