2 个版本

0.1.3 2020年11月25日
0.1.2 2020年11月25日

2710命令行工具

Download history 4/week @ 2024-03-16 5/week @ 2024-03-23 39/week @ 2024-03-30 11/week @ 2024-04-06 49/week @ 2024-04-13 46/week @ 2024-04-20 2/week @ 2024-04-27 11/week @ 2024-05-11 15/week @ 2024-05-18 7/week @ 2024-05-25 7/week @ 2024-06-01 20/week @ 2024-06-08 17/week @ 2024-06-15 16/week @ 2024-06-22 1/week @ 2024-06-29

56 每月下载量

Apache-2.0

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