{}
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
올바르게 탈출하는 방법은 무엇입니까?
@SergiyKolodyazhnyy 4.2에서 수정되었습니다. POSIX 표준을 준수하기 위해 매개 변수 확장 연산자에 따른 단어 확장 인용에 대한 논의를 떠 올립니다.
—
chepner 2016
echo "${X:-{\}}"
잘 작동했습니다.