我如何将一个Pythonvariables传递给Bash shell? 它应该像这样工作: foo="./RetVar.py 42"
用`sreplace双引号
我试过打印和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)
通常你用双引号把它包起来,这样你的输出就可以有空格了。 它必须是双引号,因为单引号内的东西不会被执行。