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 ``'


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.


2
Więcej niż ktokolwiek
mr.spuratic

1
+1 za użycie „passe” w odpowiedzi technicznej. Brawo, proszę pana!
Bruce Ediger
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.