【问题标题】:Combine shell and python code结合shell和python代码
【发布时间】:2018-07-21 02:30:48
【问题描述】:

目前,我有以下代码作品:

a.sh

echo "start"

export abc="hello"
a=`python a.py`
echo $a

echo "end"

a.py

import os
print os.getenv('abc')*2

上面,我的 shell 脚本需要一个 python 脚本的帮助来处理某些事情,然后将答案返回给 shell 脚本。

虽然可行,但我们需要编写另一个python文件,要求是向用户提供单个文件,所以它是如何制作的,我记得我曾经看到过某种结合shell和python代码的实现,有人也可以知道并给我一些线索吗?

【问题讨论】:

  • 为什么不用python写所有东西?
  • 不推荐使用反引号,顺便说一下,$( cmd ) 是。它更容易嵌套等。
  • @backticks,为什么不推荐使用反引号?
  • 开始和结束的字符相同,因此更难正确使用。我建议的方式做同样的事情,但更少的逃避问题。 stackoverflow.com/q/9405478
  • @Guy,我认识他们两个,但没有意识到他们之间的区别,真是意外之财,谢谢。

标签: python bash shell


【解决方案1】:

您可以在 a.sh 文件中使用python-c 选项:

echo "start"

export abc="hello"
a=$(python -c "import os ; print os.getenv('abc') * 2")
echo $a

echo "end"

【讨论】:

    【解决方案2】:

    a.sh

    echo "start"
    
    export abc="hello"
    a=`python <<- EOF
    import os
    print os.getenv('abc')*2
    EOF`
    echo $a
    
    echo "end"
    

    【讨论】:

    • 你不需要cat,你可以使用python &lt;&lt;- EOF ...
    猜你喜欢
    • 2013-04-23
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多