如何将Pythonvariables传递给Bash?

我如何将一个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) 

通常你用双引号把它包起来,这样你的输出就可以有空格了。 它必须是双引号,因为单引号内的东西不会被执行。