我開始寫一些pyhton編碼,以啓動新的服務器/ VM(S)與代理服務器(py2.7)長的「回聲」通過子
這一直沒有工作,由於語法錯誤
subprocess.call("echo 'http_proxy="http://proxy.srx.com:80/" \nhttps_proxy="http://proxy.srx.com:80/" \nno_proxy="127.0.0.1, localhost, *.internaldns.com, 172.27.255.88, 172.27.255.89" ' >> /etc/environment ", shell=True);
所以我試圖將\ n爲進
#!/usr/bin/python
import os;
import subprocess;
subprocess.call(["ls", "/etc/"]);
print "=====Next Command=====";
print "echo to environment";
subprocess.call("echo "http_proxy="http://proxy.srx.com:80/"" >> /etc/environment", shell=True);
subprocess.call("echo "https_proxy="http://proxy.srx.com:80/"" >> /etc/environment", shell=True);
subprocess.call("echo "no_proxy="127.0.0.1, localhost, *.internaldns.com, 172.27.255.88, 172.27.255.89"" >> /etc/environment", shell=True);
print "=====Next Command=====";
subprocess.call("ls /root/", shell=True);
#if CentOS yum.conf
#if Ubuntu apt.conf
~
但還是這個語法錯誤?
~# ./sys.py
File "./sys.py", line 12
subprocess.call("echo "http_proxy="http://proxy.srx.com:80/"" >> /etc/environment", shell=True);
^
SyntaxError: invalid syntax
謝謝! 。 我試過的許多組合「和」,但沒有運氣
你試圖使用相同的當然,如果你不用'shell = True'來使用'基於'str'的命令,那麼這將變得容易很多;''list'基於命令使得需要內部引用的頻率要低得多,或者在這種特殊情況下,跳過沒有意義的'subprocess'用法,而只是'打開'文件和'print' /'write'ing它直接。 ('/ etc/environment','a')作爲env:',然後在'env.write('http_proxy =「http://proxy.srx.com:80/」\ n')塊中' – ShadowRanger
不相關:不要將您的Python腳本命名爲標準的Python模塊,比如'sys'。否則,可能會發生意外錯誤,[example1](http://stackoverflow.com/q/25299371/4279),[example2](http://stackoverflow.com/q/27702506/4279),[example3](http ://stackoverflow.com/q/28066014/4279),[example4](http://stackoverflow.com/q/27714497/4279)等。 – jfs
@JF塞巴斯蒂安哦哇,我不知道。謝謝。 – SndLt