2 个版本
| 0.1.3 | 2020年11月25日 |
|---|---|
| 0.1.2 | 2020年11月25日 |
2710 在 命令行工具
56 每月下载量
12KB
203 行
envsub
$ envsub [options]
envsub 程序用于替换环境变量的值。与只支持 ${NAME} 风格替换的 envsubst 不同,envsub 程序还支持 ${NAME-default} 和 ${NAME:-default} 风格替换。
程序逐行将标准输入(stdin)传输到标准输出(stdout),并应用所需的替换。
命令行选项
-h, --help:: 显示命令的帮助详情并退出。
-p, --prefix:: 允许配置替代的前缀以替换模式,如果默认的 ${ 会引起冲突。
-s, --suffix:: 允许配置替代的后缀以替换模式,如果默认的 } 会引起冲突。
注意: 如果你的后缀以 : 或 - 开头,你可能不会有一个愉快的体验,因为这将与模式内部默认值分隔符冲突。
-g,--greedy-defaults:启用未匹配默认值的贪婪替换。使用此选项时,如果您有 ${FOO} 且没有对应的变量 FOO,则它将保持不变,但 ${FOO:-BAR} 或 ${FOO-BAR} 将被替换为 BAR,而如果没有此选项,它们将保持不变。
-v,--var:仅替换命名的变量。如果需要替换多个变量,可以多次指定。如果没有指定,则可以使用环境中的所有变量进行替换。
-V,--version:显示程序版本并退出。
示例
提示:当运行 envsub 而不带 -v 参数时,将只搜索具有环境变量的模式,因此如果 NAME 未定义,则 ${NAME-default} 形式永远不会被替换。
基本用法
$ (echo 'FOO=${FOO} or ${FOO-unset} or ${FOO:-empty}') | (unset FOO && envsub)
FOO=${FOO} or ${FOO-unset} or ${FOO:-empty}
$ (echo 'FOO=${FOO} or ${FOO-unset} or ${FOO:-empty}') | (unset FOO && envsub -v FOO)
FOO=${FOO} or unset or empty
$ (echo 'FOO=${FOO} or ${FOO-unset} or ${FOO:-empty}') | (FOO= envsub)
FOO= or or empty
$ (echo 'FOO=${FOO} or ${FOO-unset} or ${FOO:-empty}') | (FOO= envsub -v BAR)
FOO=${FOO} or ${FOO-unset} or ${FOO:-empty}
$ (echo 'FOO=${FOO} or ${FOO-unset} or ${FOO:-empty}') | (FOO=123 envsub)
FOO=123 or 123 or 123
自定义前缀和后缀
$ (echo 'FOO=%FOO:-empty%') | (FOO= envsub -p '%' -s '%')
FOO=empty
依赖关系
~2.4–3.5MB
~56K SLoC