$ Shell Unescape
Paste a quoted or backslash-escaped string and get back the raw text the shell would see — for bash / sh, Windows cmd and PowerShell. Auto-detects the quoting style, and shows you exactly how the shell splits it into arguments.
01 · Unescape a quoted string
02 · Split into arguments (argv view)
How a POSIX shell would split your input into separate arguments — quoted spans stay together, unquoted spaces split. $variables and $(commands) are shown literally: this view never expands or executes anything.
| Argument | Value | Length |
|---|
03 · All five modes side by side
Same input, every mode — the fastest way to see when the quoting style is ambiguous and which readings agree.
| Mode | Decoded output | vs result |
|---|
04 · Worked examples
out: it's
out: don't "quote" me $now
out: file (1).txt
out: say "hi" $USER
out: 100%
out: a"b
out: it's
out: plain
Every example above is machine-verified: each output is recomputed by the page's own unescape engine at build time.
05 · Where unescaping is lossy — read this
Unescaping is the reverse of escaping, but not every round trip is perfect. This tool tells you about each of these instead of guessing silently:
| Case | What happens | Why it's honest |
|---|---|---|
| quoted vs unquoted space | Both decode to the same space character. | The quoting carried the only record of which it was — that record is gone. |
| $VAR in "..." | Shown literally, never expanded. | Expansion needs your environment; a web page can't (and mustn't) know it. |
| $(...) and `...` | Shown literally, never executed. | Executing pasted commands would be a remote-code-execution hole. |
| lone % in cmd | Kept literally + warning. | It could be data or a %VAR% reference — only you know. |
| ! in "..." (bash) | Decoded as typed. | Interactive bash may history-expand ! before any tool sees it; nothing can undo that. |
| \ | Lines are joined (continuation). | That is what POSIX shells do — the tool mirrors it and says so. |
Scope boundary — what this tool is and isn't
✓ This tool
- Decodes one quoted/escaped string back to raw text (one-way: escaped → plain).
- Covers POSIX shells (bash, dash, sh, zsh) plus Windows cmd and PowerShell — the same five modes as our Shell Escape tool, in reverse.
- Shows the argv split so you see token boundaries exactly as the shell would.
✕ Not this tool
- Not an escaper — to quote raw text for a command, use Shell Escape.
- Not a shell: it never expands variables and never executes commands.
- Not a deobfuscator for malware — it decodes quoting, nothing more.
06 · Frequently asked questions
What does this shell unescape tool do?
Why can't unescaping always recover the exact original string?
How does auto-detect choose a mode?
What is the 'split args' view?
Why is $VAR shown literally instead of expanded?
When should I use shell-unescape instead of shell-escape?
Is my input sent to a server?
Free tool by NRTechStudio