若需要传递变量给sed命令,需要将单引号替换使用双引号。
比如:
echo "dir = abc" | sed 's/\(^dir[ \t]\{0,\}=[ \t]\{0,\}\).\+$/\1${CaDir}/g'
替换为
echo "dir = abc" | sed "s/\(^dir[ \t]\{0,\}=[ \t]\{0,\}\).\+$/\1${CaDir}/g"
由于/是sed命令格式中的特殊字符,所以如果遇到传入sed命令的变量中含有/,则需要转义
正确做法:
若需要传递变量给sed命令,需要将单引号替换使用双引号。
比如:
echo "dir = abc" | sed 's/\(^dir[ \t]\{0,\}=[ \t]\{0,\}\).\+$/\1${CaDir}/g'
替换为
echo "dir = abc" | sed "s/\(^dir[ \t]\{0,\}=[ \t]\{0,\}\).\+$/\1${CaDir}/g"
由于/是sed命令格式中的特殊字符,所以如果遇到传入sed命令的变量中含有/,则需要转义
正确做法: