Экранирование аргументов оболочки
Безопасно заключайте любую строку в кавычки для POSIX sh/Bash/Zsh (одинарные кавычки), Bash ANSI-C $'…' или PowerShell — либо разбирайте слова в кавычках обратно.
Символов: 19 · байт: 19 (UTF-8)
Символов: 0 · байт: 0 (UTF-8)
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Экранирование для оболочки?
Превращает любой текст в один аргумент оболочки, который shell передаст без изменений, включая кавычки, $, обратные кавычки, пробелы и переводы строк. Поддерживает оболочки POSIX, ANSI-C-экранирование Bash/Zsh и PowerShell и умеет разбирать слова в кавычках обратно.
Как пользоваться Экранирование для оболочки
- Выберите Экранировать или Снять экранирование.
- Укажите Оболочка: POSIX sh/Bash/Zsh, Bash/Zsh ANSI-C или PowerShell.
- При необходимости включите Каждая строка — отдельный аргумент или Всегда заключать в кавычки.
- Вставьте значение в Ввод и скопируйте аргумент в кавычках из Вывод.
Пример
It's $HOME
'It'\''s $HOME'
Когда использовать Экранирование для оболочки
Используйте, когда строите команды с именами файлов, паролями или пользовательским вводом — в скриптах, командах SSH, конфигурациях CI или документации. Windows cmd.exe не поддерживается: в нём нет экранирования, безопасного для любого ввода. В программах предпочитайте передачу массивов аргументов (например, execFile, subprocess.run([...])) вместо построения строк для оболочки.
Как работает Экранирование для оболочки
Режим POSIX оборачивает текст в одинарные кавычки, внутри которых нет ничего особенного, а каждый ' записывает как '\'' (закрыть кавычку, экранированная кавычка, открыть снова) — тот же подход, что у shlex.quote в Python. Простые слова только из A–Z a–z 0–9 _ @ % + = : , . / - остаются без кавычек, если вы не попросили их добавить. Режим ANSI-C даёт $'…' с экранированием \n, \t, \' и \xHH, которое делает управляющие символы видимыми. Режим PowerShell использует одинарные кавычки и удваивает каждую одинарную кавычку (включая типографские ‘ ’). Режим снятия экранирования разбирает слова так, как это делает оболочка (кавычки, обратные косые черты, $'…'), не выполняя никаких подстановок.
Распространенные Случаи Использования
- Передача команде имени файла с пробелами или кавычками
- Встраивание полезной нагрузки JSON в команду
curl - Экранирование аргументов для
ssh host "command" - Понимание того, что на самом деле передаёт сложная командная строка с кавычками
Примечание по Безопасности
Правильное экранирование предотвращает внедрение команд только тогда, когда значение используется как один аргумент; оно не делает небезопасную команду безопасной.
Часто Задаваемые Вопросы
Почему бы просто не использовать двойные кавычки?
Внутри двойных кавычек оболочка всё равно раскрывает $VAR, обратные кавычки и \. Одинарные кавычки отключают любые подстановки, поэтому безопасны для произвольного текста.
Что означает '\''?
Это завершает часть в одинарных кавычках, добавляет экранированную буквальную кавычку и начинает новую часть в одинарных кавычках. Оболочка склеивает фрагменты в один аргумент.
Поддерживается ли Windows cmd.exe?
Нет. В cmd.exe нет экранирования, которое надёжно защищает символы вроде % и ^ в любом контексте. Используйте режим PowerShell или избегайте оболочки.