Dlaczego bash hermetyzuje błąd składniowy zarówno z poważnym akcentem, jak i apostrofem?

14

Gdy bash zgłasza błąd składni, to oddaje tekst, który podniósł błąd składni zarówno z akcentem iz apostrof, jak ten: `...'. Masz pomysł, dlaczego?

Oto przykład:

$ bash -c "echo error()"
bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `echo error()'

To nie jest bardzo powszechne; jestem jednak ciekawy, to nie jest prawdziwy problem.

Edycja: staje się dziwniejsza z niejasnymi wiadomościami takimi jak ten:

-bash: unexpected EOF while looking for matching ``'
Kawaler
źródło

Odpowiedzi:

8

W niektórych czcionkach znaki cudzysłowu będą pojawiać się jako przeciwne pary zwiniętych pojedynczych cudzysłowów. Jest passe w dzisiejszym świecie Unicode , ale kod i praktyki, które spowodowały takie cytowanie, pochodzą z czasów poprzedzających Unicode lub z jego powszechnej dostępności.

Warren Young
źródło
2
Więcej niż ktokolwiek
mr.spuratic
1
+1 za użycie „passe” w odpowiedzi technicznej. Brawo, proszę pana!
Bruce Ediger