Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

22.31. envsubst - substitutes environment variables in shell format strings

替代品在shell环境变量的格式字符串,类似模版替换操作

	
[root@localhost tmp]# echo "welcome $HOME ${USER:=a8m}" | envsubst
welcome /root root	
	
	
	
[root@localhost tmp]# cat config.template 
HOME=${HOME}
USER=${USER}

[root@localhost tmp]# envsubst < config.template > config.conf

[root@localhost tmp]# cat config.conf 
HOME=/root
USER=root
	
	

只替换 ${USER} 变量

	
[root@localhost tmp]# envsubst '${USER}' < config.template > config.conf
[root@localhost tmp]# cat config.conf 
HOME=${HOME}
USER=root	
	
	

模版变量

	
${var}				var值( 与 $var 相同)
${var-$DEFAULT}		如果未设置 var,则将表达式计算为 $DEFAULT
${var:-$DEFAULT}	如果未设置var或者为空,则将表达式计算为 $DEFAULT
${var=$DEFAULT}		如果未设置 var,则将表达式计算为 $DEFAULT
${var:=$DEFAULT}	如果未设置var或者为空,则将表达式计算为 $DEFAULT
${var+$OTHER}		如果为 var,则将表达式计算为 $OTHER,,否则为空字符串
${var:+$OTHER}		如果为 var,则将表达式计算为 $OTHER,,否则为空字符串