2 个稳定版本
使用旧的 Rust 2015
2.1.2 | 2022 年 8 月 5 日 |
---|---|
2.1.1 | 2022 年 3 月 2 日 |
#2502 在 Rust 模式
43KB
472 行
shellexpand,一个用于字符串中 Shell 类似扩展的库
注意:此crate名称已弃用。2.1.2 之后的更新将不再提供。请切换到 shellexpand
,它将继续开发。
shellexpand 是一个单依赖库,允许在字符串中执行类似 Shell 的扩展,即扩展变量如 $A
或 ${B}
到其上下文中的值,并将 ~
扩展到字符串的开头为家目录(同样,在上下文中)。
此 crate 提供了接受任意上下文的泛型函数以及默认的系统函数,这些函数使用系统上下文执行扩展(由 std::env
模块和 dirs crate 的函数表示)。
注意:此软件包曾是 Vladimir Matveev 库的分支。由于维护中断,存在此分支。现在请使用 shellexpand
。
此 crate 的替代品
expanduser
:仅提供波浪号替换。支持~user
,而此 crate 当前不支持(尽管我们希望如此)。envsubst
:不提供波浪号扩展。仅支持某些具体类型(例如,变量映射的HashMap
)。expand_str
:使用%..%
语法。不提供波浪号扩展。变量查找只能是确定的。tilde_expand
:仅对字节([u8]
)进行波浪号展开。
用法
在您的 Cargo.toml
中添加依赖项。
为了避免必须编写 use shellexpand_fork as shellexpand
或类似的内容,请在导入时重命名包
[dependencies]
shellexpand = { version = "2.1", package = "shellexpand-fork" }
有关更多信息和方法,请参阅舱单文档(本读我文件的开始处有一个链接)。
变更日志
版本 2.1.2
小改动
- README:直接将人们带回到
shellexpand
- 列出此舱单的替代方案。
- 从 dirs-next 切换回 dirs。
- 改进文档中的链接,并修复损坏的链接和徽章。
- 应用一些来自
cargo fix
的建议。
版本 2.1.1
- 修复了在 Windows 上使用 Windows 样式(反斜杠)路径时的波浪号展开。解决了 https://github.com/netvl/shellexpand/pull/13 的问题。
- 在 crates.io 上作为
shellexpand-fork
分支。
版本 2.1.0
- 由于用于解析主目录的底层依赖项是过时的
dirs
,因此已切换到dirs-next
而不是dirs
。 - 将项目构建从 Travis CI 切换到 GitHub Actions。
版本 2.0.0
- 添加了对变量展开中默认值的支持(即
${ANSWER:-42}
) - 破坏性更改(最低 Rust 版本是 1.30.0)
- 使用
dyn
为特质对象以修复弃用警告 - 在
Error
实现中使用source()
而不是cause()
,因此为泛型错误参数E
添加了'static
约束
- 使用
版本 1.1.1
- 将
dirs
依赖项提升到 2.0。
版本 1.1.0
- 将已弃用的
std::env::home_dir
的使用改为 dirs::home_dir 函数
版本 1.0.0
- 修复了文档中的错误和轻微的不完整性。
- 将波浪号展开函数的
home_dir
参数类型更改为FnOnce
,而不是FnMut
- 将
LookupError::name
字段名称更改为var_name
版本 0.1.0
- 首次发布
许可
此程序根据您的选择受以下任一项许可:
- Apache 许可证 2.0 版(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示,否则任何有意提交以包含在您的工作中的贡献,根据 Apache-2.0 许可证定义,将根据上述许可双许可,而无需任何额外的条款或条件。
依赖关系
~57–510KB