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