Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About
知乎專欄多維度架構 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者”

26.19. 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,,否則為空字元串