Shell-Script
在 sed 替換中引用 ${variable} 值
我正在嘗試替換幾個類似的 sql 腳本中的字元串。在我的工具箱中,我還有一個
for loop
bash腳本。grep``sed
#!/usr/bin/env bash for efa_instance in efa_bauen_bb efa_bauen_bw do echo ${efa_instance} secret=$(grep ${efa_instance}_user efa_secret.csv | cut -d\; -f3) echo ${secret} echo replacing password for ${efa_instance} sed -i 's/<via Mail>/${secret}/' ${efa_instance}.service.sql done
但是,這會將字元串替換為
<via Mail>
字面上的字元串,${secret}
而不是儲存在${secret}
變數中的值。這項工作的組件按預期工作,只是嘗試使用 sed 實際替換佔位符失敗。
我是不是看到了一些明顯的東西,還是我的方法存在設計缺陷。
也許值得一提(如果有人想推薦的話)……我從來沒有使用過 awk 並且不知道是否有任何
使用
"
代替'
:sed -i "s/<via Mail>/${secret}/" ${efa_instance}.service.sql