Function glib::functions::shell_unquote [−][src]
pub fn shell_unquote<P: AsRef<OsStr>>(
quoted_string: P
) -> Result<OsString, Error>
Expand description
Unquotes a string as the shell (/bin/sh) would. Only handles
quotes; if a string contains file globs, arithmetic operators,
variables, backticks, redirections, or other special-to-the-shell
features, the result will be different from the result a real shell
would produce (the variables, backticks, etc. will be passed
through literally instead of being expanded). This function is
guaranteed to succeed if applied to the result of
shell_quote()
. If it fails, it returns None
and sets the
error. The quoted_string
need not actually contain quoted or
escaped text; shell_unquote()
simply goes through the string and
unquotes/unescapes anything that the shell would. Both single and
double quotes are handled, as are escapes including escaped
newlines. The return value must be freed with g_free()
. Possible
errors are in the G_SHELL_ERROR
domain.
Shell quoting rules are a bit strange. Single quotes preserve the literal string exactly. escape sequences are not allowed; not even ' - if you want a ’ in the quoted text, you have to do something like ‘foo’'‘bar’. Double quotes allow $, `, “, , and newline to be escaped with backslash. Otherwise double quotes preserve things literally.
quoted_string
shell-quoted string
Returns
an unquoted string