清理源自另一个文件的变量

时间:2014-04-20 19:17:34

标签: bash

我有许多来自外部文件的变量:

my.sh

source my.conf

sed -i "s:var1:$var1:g" $SOME_FILE
sed -i "s:var2:$var2:g" $SOME_FILE
sed -i "s:var3:$var3:g" $SOME_FILE

my.conf

var1=abc:abc
var2=def!123
var3=&*(!"£

如果任何值包含特殊字符(例如冒号字符),则源这些变量的脚本将遇到问题:

我已经看到变量可以是individually sanitised,但它是否可以一次性消毒它们?请注意,实际变量名称没有上面示例中的模式。

1 个答案:

答案 0 :(得分:2)

您可以在采购之前转换配置文件,以便转义sed分隔符:

source <(sed 's/:/\\\\:g' my.conf)

<(command)表单称为Process Substitution