在用fabric脚本批量修改服务器配置时,涉及对大括号需要转义处理。
脚本:
run("sed -i 's/{localredis}/game-redis-{}.knight.game/g' ./conf/web.properties".format(id))
转义处理后:
run("sed -i 's/\\{localredis\\}/game-redis-{}.knight.game/g' ./conf/web.properties".format(id))
执行会报错:
KeyError: 'localredis\\'
原来,Python大括号的转义是两个大括号:
run("sed -i 's/{{localredis}}/game-redis-{}.knight.game/g' ./conf/web.properties".format(id))
修改后执行成功