Bash
WTF
code
Zsh
В баше очень интересные кавычки. Одинарные кавычки, к примеру, сжирают всё, не давая ничего заэскейпить. То есть одинарные внутри одинарных вставить не получится.
Также есть двойные кавычки, в которых бэкслеш \ является обычным символом во всех случаях, кроме как если после него стоит один из символов (‘$’, ‘`’, ‘\’ или ‘!’), тут он, всё же, эскейпит. Удивительное решение сделать зависимость экранирования от контекста, ну и ладно. Bash:
kost@k-bx:~$ echo "tfoo"
tfoo
kost@k-bx:~$ echo "\tfoo"
\tfoo
kost@k-bx:~$ echo "\\tfoo"
\tfoo
А теперь, по ошибке забыв что у меня zsh, узрел, что там они тоже решили действовать своим, особенным способом. Я не читал документацию, но из экспериментов так и не понял принцип работы:
~ ➤ echo "tfoo"
tfoo
~ ➤ echo "\tfoo"
foo
~ ➤ echo "\\tfoo"
foo
~ ➤ echo "\\\tfoo"
\tfoo
~ ➤ echo "\\\\tfoo"
\tfoo
Очень сложно со строками :)
p.s.: напоминаю, что "привычные" строки можно получить при помощи использования $'строка'