变量$STR=‘/home/test’,文件test.conf里面有多行以/home/james开头,想使用$STR的内容替换test.conf里面所有的/home/james:
1 使用sed -i "s/\/home\/james/$STR/g" test.conf,执行之后报错,错误信息如下:
sed: -e expression #1, char 8: unknown option to `s'
之后发现sed可以接收参数$1,然后就把替换放在函数里面,然后在把变量传进去,结果发现还是一样的结果,
由此断定应该是变量的值造成的,把STR换成STR=dfddf,替换成功,
应该是/造成的,和s/冲突了,所以替换成%
2 使用sed -i "s%/home/james%$STR%g" test.conf,替换成功