使用变量从python执行Shell脚本

Vin*_*nce 10 python variables execute

我有这个代码:

opts.info("Started domain %s (id=%d)" % (dom, domid))
Run Code Online (Sandbox Code Playgroud)

我想用domid上面的参数执行一个shell脚本.像这样的东西:

subprocess.call(['test.sh %d', domid])
Run Code Online (Sandbox Code Playgroud)

它是如何工作的?

我尝试过:

subprocess.call(['test.sh', domid])
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

File "/usr/lib/xen-4.1/bin/xm", line 8, in <module>
    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 "<string>", line 1, in <lambda>
  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
Run Code Online (Sandbox Code Playgroud)

Pac*_*aco 15

像这样 ?

subprocess.call(['test.sh', str(domid)])
Run Code Online (Sandbox Code Playgroud)

文档可以在python网站上找到