我该如何将一个Python变量传递给Bash shell?它应该是这样的: foo="./RetVar.py 42"
如何将Python变量传递给Bash?
用'替换双引号小号
我曾尝试印刷和sys.exiting的结果,但无济于事。我将如何实现我的目标?
我该如何将一个Python变量传递给Bash shell?它应该是这样的: foo="./RetVar.py 42"
如何将Python变量传递给Bash?
用'替换双引号小号
我曾尝试印刷和sys.exiting的结果,但无济于事。我将如何实现我的目标?
foo="$(scriptthatprintssomething)"
就是这样。 print
。或者sys.stdout.write()
。或者类似的。如果脚本不可执行,那么您需要明确指定解释器。
foo="$(python scriptthatprintssomething.py)"
你想要的形式工作得很好:
$ cat >Retvar.py
#!/usr/bin/python
import sys
print sys.argv[1]
$ chmod +x RetVar.py
$ foo=`./RetVar.py 42`
$ echo $foo
42
$
所以想必你曾试图打印的方式是不正确的。 (这与使用旧式backquotes或更新式的构造(如$()
)相当独立)。如果你仍然有这个问题,你能向我们展示一下Python代码的最简单的例子来重现它,帮助我们帮助你吗?
在bash中``cmd \
和$(cmd)将被命令的输出替换。这可以让你的程序的输出分配给一个变量像
foo=`some command`
或
foo=$(some command)
通常你用双引号把这个包,所以你可以在你的输出有空格。它必须是双引号,因为单引号内的东西不会被执行。