DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

Fabric中向文件写入特殊字符


场景:需要向/etc/default/docker文件追加一行文字:

DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=http://b53a2938.m.daocloud.io"

其中双引号和$是特殊字符,难度主要提现在如何转意这两个字符上。

普通用户通过Shell达到目标的方法是:

echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://b53a2938.m.daocloud.io\"" | sudo tee -a /etc/default/docker

root用户使用Shell的方法是:

echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://b53a2938.m.daocloud.io\"" >> /etc/default/docker

Fabric的实现方法是:

sudo('echo "DOCKER_OPTS=\\\\"\\\$DOCKER_OPTS '
     '--registry-mirror=http://b53a2938.m.daocloud.io\\\\"" '
     '>> /etc/default/docker')

或者用raw string:

sudo(r'echo "DOCKER_OPTS=\\"\\$DOCKER_OPTS --registry-mirror='
     r'http://b53a2938.m.daocloud.io\\"" >> /etc/default/docker')


Published

May 25, 2016

Last Updated

May 25, 2016

Category

Tech

Tags

  • charactor 1
  • escape 1
  • fabric 8

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor