Shell-Script

在 sed 替換中引用 ${variable} 值

  • November 14, 2022

我正在嘗試替換幾個類似的 sql 腳本中的字元串。在我的工具箱中,我還有一個for loopbash腳本。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

引用自:https://unix.stackexchange.com/questions/724853