我试图从python执行shell脚本(而不是命令):
main.py
-------
from subprocess import Popen
Process=Popen(['./childdir/execute.sh',str(var1),str(var2)],shell=True)
execute.sh
----------
echo $1 //does not print anything
echo $2 //does not print anything
Run Code Online (Sandbox Code Playgroud)
var1和var2是我用作shell脚本输入的一些字符串.我错过了什么或者有其他办法吗?
我有一个脚本,它通过subprocess.Popen模块调用另一个python脚本.但因为我有变量存储的参数
servers[server]['address']
servers[server]['port']
servers[server]['pass']
Run Code Online (Sandbox Code Playgroud)
我无法执行命令
p = subprocess.Popen(["python mytool.py -a ", servers[server]['address'], "-x", servers[server]['port'], "-p", servers[server]['pass'], "some additional command"], shell=True, stdout=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud) 我想将两个变量传递给os.system(),例如列出特定目录中不同格式的文件,如(ls -l testdirectory),其中switch和test目录都是可变的.我知道单变量这个有效:
option=l
os.sytem('ls -%s' option)
但我不知道如何传递两个变量?
有人可以帮助我了解语法,如何从 shell 脚本调用“x”函数吗?这里的挑战是,shell 脚本需要动态传递 a,b。
非常感谢您的建议。
Python代码:
def x(a,b):
'''x(a,b) --> [a,b]'''
return [a,b]
def add(a,b):
'''add(a,b) --> a+b'''
return a+b
def test():
'''test code for all modules'''
print "testing x..."
print x(1,2)
print x('a','b')
print x([1,2,3],[4,5,6])
print "testing add..."
print add(1,2)
print add('a','b')
print add([1,2,3],[4,5,6])
return
Run Code Online (Sandbox Code Playgroud)