从python脚本返回值到shell脚本

时间:2015-12-09 05:46:40

标签: python linux bash shell

我是python的新手。我创建一个返回字符串hello世界的python脚本。并创建一个shell脚本。添加从shell到python脚本的调用。

  1. 我需要将参数从shell传递给python。
  2. 我需要在shell脚本中打印python的返回值。
  3. 这是我的代码

    shellscript1.sh

    #!/bin/bash
    # script for tesing
    clear
    echo "............script started............"
    sleep 1
    python python/pythonScript1.py
    exit
    

    pythonScript1.py

    #!/usr/bin/python
    import sys
    
    print "Starting python script!"
    try:
        sys.exit('helloWorld1') 
    except:
         sys.exit('helloWorld2') 
    

2 个答案:

答案 0 :(得分:19)

您不能将消息作为退出代码返回,只能返回数字。在bash中,它可以通过$?访问。您还可以使用sys.argv访问代码参数:

import sys
if sys.argv[1]=='hi':
    print 'Salaam'
sys.exit(0)
shell中的

#!/bin/bash
# script for tesing
clear
echo "............script started............"
sleep 1
result=`python python/pythonScript1.py "hi"`
if [ "$result" == "Salaam" ]; then
    echo "script return correct response"
fi

答案 1 :(得分:3)

将shell脚本的命令行参数传递给Python,如下所示:

python script.py $1 $2 $3

打印返回代码,如下所示:

echo $?