行うよりも良い代替手段はありますか:
echo "{\"error\": \"Must be executed using the user account 'admin'.\"}" >&2;
bashスクリプトで?
ヒアドキュメントを試すことができます:
cat <<EOT
{"error": "Must be executed using the user account 'admin'."}
EOT
EOT
これは、目的のテキストにそれ自体のみを含む単一の行がない限り機能しますcat
。それが問題になる場合は、代替トークンを選択できます。
cat <<FOO
EOT
FOO
さらに、基本的なヒアドキュメントでさえ、不要な拡張が行われていることがわかった場合、たとえば
cat <<EOT
foo$a
EOT
展開しようとすると$a
、ヒアドキュメントトークンを引用してその展開を止めることができます:
cat <<'EOT'
foo$a
EOT