您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从python结构执行远程bash命令时“转义”$

5b51 2022/1/14 8:20:58 python 字数 2411 阅读 497 来源 www.jb51.cc/python

所以我试图通过python结构脚本自动化建立一个arch linux实例,如下所示:from fabric.api import run, sudo def server_setup_communityrepo(): run('echo \'echo '[archlinuxfr]' >> /etc/pacman.conf\' | sud

概述

所以我试图通过python结构脚本自动化建立一个arch linux实例,如下所示:

from fabric.api import run,sudo

def server_setup_communityrepo():
    run('echo \'echo "[archlinuxfr]" >> /etc/pacman.conf\' | sudo -s')
    run('echo \'echo "Server = http://repo.archlinux.fr/$arch" >> /etc/pacman.conf\' | sudo -s')
    run('echo \'echo " " >> /etc/pacman.conf\' | sudo -s')
    sudo('pacman -Syy yaourt --noconfirm')

由于$arch中的$符号,在第二次run()调用时会出现此问题.此结构函数在第2行中失败,因为$后跟一个字符串被fabric识别为配置变量.但我实际上希望将$arch理解为文字中的字面值

echo’echo“Server = http://repo.archlinux.fr/$arch”>> /etc/pacman.conf’调用bash shell.

如何从这个结构怪癖中“逃脱”,并将$arch指定为要写入我的pacman.conf文件文字

run('echo \'Server = http://repo.archlinux.fr/$arch\' | sudo -s tee -a /etc/pacman.conf')

这应该相当于

echo 'Server = http://repo.archlinux.fr/$arch' | sudo -s tee -a /etc/pacman.conf

快速测试:

>>> import os
>>> os.system('echo \'Server = /foo/$arch\' ')
Server = /foo/$arch
0

总结

以上是编程之家为你收集整理的从python结构执行远程bash命令时“转义”$全部内容,希望文章能够帮你解决从python结构执行远程bash命令时“转义”$所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶