![bash が構文エラーを重アクセントとアポストロフィの両方でカプセル化するのはなぜですか?](https://rvso.com/image/52113/bash%20%E3%81%8C%E6%A7%8B%E6%96%87%E3%82%A8%E3%83%A9%E3%83%BC%E3%82%92%E9%87%8D%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%B3%E3%83%88%E3%81%A8%E3%82%A2%E3%83%9D%E3%82%B9%E3%83%88%E3%83%AD%E3%83%95%E3%82%A3%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%A7%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
bash が構文エラーを報告する場合、構文エラーの原因となったテキストが次のように重アクセントとアポストロフィの両方でカプセル化されます。`...'
なぜかご存じですか?
次に例を示します。
$ bash -c "echo error()"
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `echo error()'
これはあまり一般的ではありませんが、私はただ興味があるだけで、実際の問題ではありません。
編集:次のようなわかりにくいメッセージによって、状況はさらに奇妙になります。
-bash: unexpected EOF while looking for matching ``'
答え1
特定のフォントでは、これらの引用符は、カールした一重引用符の対として表示されます。時代遅れで今日のユニコードの世界しかし、このような引用符を生成するコードと慣習は、Unicode 以前、またはそれが広く利用可能になる前の時代に由来しています。