Python 子进程 echo 不将带引号的文本传递到文件末尾

标签 python

我目前正在尝试将此行附加到文件末尾

    zone_text = 'zone \"domain.com\" { type master; file \"/etc/bind/zones/domain.com\";};'
    add_zone_file = subprocess.Popen(
        ['ssh', NAMESERVERS[0], '/bin/echo', '"{}"'.format(zone_text), '>>', '/etc/bind/named.conf.local'],
        stdout=subprocess.PIPE
    )

但是当我检查文件时,它会将其输出到其中

zone domain.com { type master; file /etc/bind/zones/domain.com;};

我需要它来输出这个

zone "domain.com" { type master; file "/etc/bind/zones/domain.com";};

最佳答案

请考虑使用shlex.quote() 。应该有帮助。还有一个选项是使用 shell=TruePopen(),但这有一些负面的安全方面。

关于Python 子进程 echo 不将带引号的文本传递到文件末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52322442/

相关文章:

python - 为什么这个带有重复命名 url 条目的 URLConf/reverse() 组合有效?这样做的正确方法是什么?

python - 在Linux Mint系统上运行的应用程序未收到udp数据包

python - 自定义字典类的 ipython 选项卡完成

python - 如果服务未运行,请重新启动 Raspberry Pi

python - 读取整个 Numpy 库中的文件

python - Airflow XCOM KeyError : 'task_instance'

python - 在日期为 "close"的级别上重新索引 MultiIndex

python - 如何使pyinstaller不使用anaconda并构建一个小型exe文件

php - 如何检查用户是否在 2 个不同的 Web 应用程序上进行了身份验证?

Python:使用 TensorFlow 计算神经网络的准确性