Я не новичок в оболочке, но все же запутался в некоторых не столь сложных проблемах с котировками. Наверное, должно быть что-то непонятое.Confusing Shell Quotation
a: echo 'Don\'t quote me // Don quote me
b: echo Don'\t' quote me // Don quote me
c: echo Don\t quote me // Dont quote me
d: echo Don"\t" qoute me // Don quote me
Выше трех цитат идет совершенно против моей интуиции. Не одинарная кавычка '...'
буквально возвращает то, что цитируется? Что я думал ...
Для: в одиночном кадре 'Don\'
, \
- не что иное, как общий характер. Таким образом, a) должно быть Don\t quote me
.
Для b: a), '\t'
подавлено специальное значение \t
, поэтому я думал, что b) должно быть Don\t quote me
.
Для c: Я понимаю, почему c работает, но не понимает разницу между & b и c.
Для d: нет разницы между '
и "
?
Возможно я неправильно понять, как shell
синтаксического анализа и выполнить линию команды ..
Проблема решена с помощью /bin/echo
вместо (built-in)echo
на Mac. Последний будет интерпретировать обратную косую черту.
вы поставляете '' -e' в echo'? – devnull
Я использую Mac, и для 'echo' нет опции' -e'. Вы имеете в виду '-n'? – qweruiop
Ваше 'эхо', кажется, интерпретирует символы обратного слэша. – devnull