天天看点

python 执行shell_从python执行Shell脚本与变量

我有这个代码:

opts.info("Started domain %s (id=%d)" % (dom,domid))

我想从上面执行一个带有参数domid的shell脚本.

这样的东西

subprocess.call(['test.sh %d',domid])

它是如何工作的?

我试过了:

subprocess.call(['test.sh',domid])

但是我收到这个错误:

File "/usr/lib/xen-4.1/bin/xm",line 8,in

main.main(sys.argv)

File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py",line 3983,in main

_,rc = _run_cmd(cmd,cmd_name,args)

File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py",line 4007,in _run_cmd

return True,cmd(args)

File "",line 1,in

File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/main.py",line 1519,in xm_importcommand

cmd.main([command] + args)

File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/create.py",line 1562,in main

dom = make_domain(opts,config)

File "/usr/lib/xen-4.1/bin/../lib/python/xen/xm/create.py",line 1458,in make_domain

subprocess.call(['test.sh',domid])

File "/usr/lib/python2.7/subprocess.py",line 493,in call

return Popen(*popenargs,**kwargs).wait()

File "/usr/lib/python2.7/subprocess.py",line 679,in __init__

errread,errwrite)

File "/usr/lib/python2.7/subprocess.py",line 1249,in _execute_child

raise child_exception

TypeError: execv() arg 2 must contain only strings