#env-var #string #variables #home-dir #shell

shellexpand-fork

字符串中的 Shell 类似扩展

2 个稳定版本

使用旧的 Rust 2015

2.1.2 2022 年 8 月 5 日
2.1.1 2022 年 3 月 2 日

#2502Rust 模式

MIT/Apache

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

版本 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 许可证定义,将根据上述许可双许可,而无需任何额外的条款或条件。

依赖关系

~57–510KB