Поиск и замена переменных в файле с помощью bash/sed

Я пытаюсь написать сценарий bash (script.sh) для поиска и замены некоторых переменных в файле input.sh. Но мне нужно изменить только те переменные, которые присутствуют в файле variable_list, а остальные оставить как есть.

список_переменных

${user}  
${dbname}

input.sh

username=${user}  
password=${password}  
dbname=${dbname}

Ожидаемый выходной файл

username=oracle  
password=${password} > This line won't be changed as this variable(${password}) is not in variable_list file
dbname=oracle

Ниже приведен сценарий, который я пытаюсь использовать, но не могу найти правильное выражение sed

script.sh

export user=oracle  
export password=oracle123  
export dbname=oracle

variable='variable_list'  
while read line ;  
do  
 if [[ -n $line ]]     
 then  
  sed -i 's/$line/$line/g' input.sh > output.sh  
 fi  
done < "$variable"    
5
задан user1292603 29 March 2012 в 15:38
поделиться