我编写了某种脚本,它从数组中获取字符串并在文件中重放它。这里的问题是特殊字符不会通过。有任何想法吗?
#!/bin/bash/
NewParameters=(
scservice.memberServiceEndpoint="http://mywebhere.com"
scservice.memberServiceConpoint="http://example.com"
play.modules.disabled += "play.data.format.FormattersModule"
)
file=/home/conf.conf
for i in "${NewParameters[@]}"
do
before=$(printf "%s\n" $i | awk -F'=' '{print $1}')
after=$(printf "%s\n" $i | awk -F'=' '{print $2}')
sed -i "s@$before=.*@$before=$after@g" $file
done
输出结果:
scservice.memberServiceEndpoint=http://mywebhere.com
scservice.memberServiceConpoint=http://example.com
play.modules.disabled += play.data.format.FormattersModule
引号已在“引号删除”阶段的分配中被 shell 删除(有关详细信息,请参阅
man bash
)。反斜杠双引号,或单引号整个元素。此外,NewParameters 中的最后一行实际上是由空格分隔的三个元素;同样,如果您想将所有内容都放在一个元素中,请反斜杠空格或将整行括在单引号中。