Я пытаюсь отправить строку, содержащую "!!" в этом. Однако каждый раз, когда я выполняю его на zsh, zsh заменяет !! с последней введенной командой. Как я могу получить зш, чтобы не интерпретировать "!!«? Я также подтвердил, что то же самое происходит, когда я просто использую sh.
3 ответа
2
Вы пробовали одну обратную косую черту для каждого персонажа?
\!\!
Предыдущие символы с обратной косой чертой (одна обратная косая черта на один символ) должны давать в действительности именно этот символ, а не заменять его (тогда он не интерпретируется).
1
Вы пробовали заключать в кавычки строку вместо одинарных кавычек?
bbbco (04:45 PM) ~/ $ echo "Exclamation!!"
echo "Exclamationecho "Exclamationecho 'Exclamation!!'""
Exclamationecho Exclamationecho Exclamation!!
bbbco (04:43 PM) ~/ $ echo 'Exclamation!!'
Exclamation!!
0
Как уже упоминалось, цитирование или экранирование помогают предотвратить расширение истории в текущей командной строке.
Но вы также можете использовать
unsetopt BANG_HIST
отключить специальную обработку персонажа !
полностью. (Поместите это ваш ~/.zshrc
чтобы сделать его постоянным.)