函数

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'` 的操作。双引号允许用反斜杠转义 `$`, ```,,` 和换行符。否则双引号完全保留原义。

参数

quoted_string

类型: const gchar*

带有 shell 引号的字符串。

数据由该函数的调用者所有。
该值是平台原生的字符串,在 Unix 上使用首选操作系统编码,在 Windows 上使用 UTF-8。
error

类型: GError **

可恢复错误的返回值位置。可恢复错误

该参数可以为 NULL
如果返回值位置不为 NULL,则你必须将其初始化为 NULL GError*
如果没有错误,函数将把该参数初始化并留空为 NULL
如果出现错误,该参数将被设置为新分配的 GError;调用者将拥有该数据的所有权,并负责释放它。

返回值

类型: gchar*

取消引号的字符串。

函数调用者拥有该数据的所有权,并负责释放它。
该值是平台原生的字符串,在 Unix 上使用首选操作系统编码,在 Windows 上使用 UTF-8。