函数
GLibshell_unquote
声明 [源代码]
gchar*
g_shell_unquote (
const gchar* quoted_string,
GError** error
)
描述 [源代码]
取消 shell (/bin/sh) 引号字符转义的字符串。
此功能仅处理引号;如果字符串包含文件通配符、算术运算符、变量、反引号、重定向或其他 shell 特有功能,结果将与实际 shell 产生的结果有所不同(变量、反引号等将直接传递,而不是展开)。
如果应用于 g_shell_quote() 的结果,则此函数保证成功。如果失败,它将返回 NULL
并设置错误。
如果 quoted_string
实际上不包含带引号或转义的文本,则 g_shell_unquote()
仅仅遍历字符串并取消 shell 将取消引号或取消任何转义的字符。它处理单引号和双引号,以及包括换行符转义在内的转义。
返回值必须使用 g_free() 释放。
可能的错误位于 G_SHELL_ERROR
域中。
Shell 引号规则有点奇怪。单引号精确地保留原义字符串。不允许转义序列;即使 `\'` 也不能使用 - 如果你想在带引号的文本中使用 `'`, 你必须执行类似于 `'foo'\''bar'` 的操作。双引号允许用反斜杠转义 `$`, ```,“,
` 和换行符。否则双引号完全保留原义。