Typed shell escaping for Bourne Shell and Bash.
A type class for objects that represent an intermediate state of escaping.
ByteString into the escaped intermediate form.
Recover the original
Yield the escaped
A Bourne Shell escaped
ByteString. An oddity of Bourne shell escaping is
the absence of escape codes for newline and other ASCII control
characters. These bytes are simply placed literally in single quotes; the
effect is that a Bourne Shell escaped string may cover several lines and
contain non-ASCII bytes. Runs of bytes that must be escaped are wrapped in
'...'; bytes that are acceptable as literals in Bourne Shell are left
A Bash escaped
ByteString. The strings are wrapped in
$'...' if any
bytes within them must be escaped; otherwise, they are left as is.
Newlines and other control characters are represented as ANSI escape
sequences. High bytes are represented as hex codes. Thus Bash escaped
strings will always fit on one line and never contain non-ASCII bytes.