如何转义变量以与sed一起使用?

时间:2016-03-16 03:20:55

标签: bash sed

我正在制作一个小脚本,我想先得到以下变量,最后在sed命令中替换变量'a',但我不知道如何使用'$',以便使用' a'作为sed命令中的一个变量,我试图用'\'和双引号来代替它,但它不起作用,我将不胜感激任何建议。

#!/bin/bash
a=$(grep DESSENDER regress.sh)
echo $a 
sed -i 's#DESSENDER="$sendr"#$a#g' inbound.sh
cat inbound.sh

我试过

sed -i 's#DESSENDER="$sendr"#\$a#g' inbound.sh

sed -i 's#DESSENDER="$sendr"#"$a"#g' inbound.sh

但最后一种方法都有效。

1 个答案:

答案 0 :(得分:1)

单引号中的变量按字面处理,因此不会被扩展。

使用双引号:

sed -i "s#DESSENDER=$sendr#$a#g" inbound.sh