2 个版本
0.1.1 | 2018年10月30日 |
---|---|
0.1.0 | 2018年10月22日 |
在 #unquote 中排名 4
14KB
144 行
r-shquote
POSIX Shell 兼容的参数解析器。
r-shquote 项目实现了 POSIX 规范中定义的 Shell 兼容命令行和提示符的 quote
和 unquote
操作。请注意,不支持特定 Shell 实现的怪癖和特殊性。
项目
要求
r-shquote 的要求是
std
(特别是alloc
用于字符串分配)
许可证
Apache 软件许可证 2.0 较小通用公共许可证 2.1+ 请参阅 AUTHORS 以获取详细信息。
lib.rs
:
POSIX Shell 兼容的参数解析器
该软件包实现了 POSIX Shell 兼容的 quote
和 unquote
操作。这允许将任意字符串引号化,以便在作为输入时不会被 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());