2 个版本

0.1.1 2018年10月30日
0.1.0 2018年10月22日

#unquote 中排名 4

Apache-2.0 OR LGPL-2.1-or-later

14KB
144

r-shquote

POSIX Shell 兼容的参数解析器。

r-shquote 项目实现了 POSIX 规范中定义的 Shell 兼容命令行和提示符的 quoteunquote 操作。请注意,不支持特定 Shell 实现的怪癖和特殊性。

项目

要求

r-shquote 的要求是

  • std (特别是 alloc 用于字符串分配)

许可证

Apache 软件许可证 2.0 较小通用公共许可证 2.1+ 请参阅 AUTHORS 以获取详细信息。


lib.rs:

POSIX Shell 兼容的参数解析器

该软件包实现了 POSIX Shell 兼容的 quoteunquote 操作。这允许将任意字符串引号化,以便在作为输入时不会被 shell 解释。同样,它允许取消引号这些字符串以获得原始输入。

这种引号的方式主要受到 POSIX 的标准化。然而,许多现有的实现支持额外的功能。这些功能明确不受此软件包支持,此软件包也不打算支持这些怪癖和特殊性。

提供的基本操作是 [quote()] 和 [unquote()],它们都接受 UTF-8 字符串作为输入,并生成相应的输出字符串。

示例

let str = "Hello World!";

println!("Quoted input: {}", r_shquote::quote(str));

如果输入未定义良好,取消引号操作可能会失败。返回的错误包含诊断信息,以确定解析器在哪里失败

let quote = "'foobar";
let res = r_shquote::unquote(quote).unwrap_err();

println!("Unquote operation failed: {}", res);

结合引号和取消引号操作总是产生原始输入

let str = "foo bar";

assert_eq!(str, r_shquote::unquote(&r_shquote::quote(str)).unwrap());

无运行时依赖