从python脚本返回值到shell脚本

Abd*_*naf 19 python linux bash shell

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

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

这是我的代码

shellscript1.sh

#!/bin/bash
# script for tesing
clear
echo "............script started............"
sleep 1
python python/pythonScript1.py
exit
Run Code Online (Sandbox Code Playgroud)

pythonScript1.py

#!/usr/bin/python
import sys

print "Starting python script!"
try:
    sys.exit('helloWorld1') 
except:
     sys.exit('helloWorld2') 
Run Code Online (Sandbox Code Playgroud)

Ali*_*han 22

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

import sys
if sys.argv[1]=='hi':
    print 'Salaam'
sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

在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
Run Code Online (Sandbox Code Playgroud)

  • 你应该捕获 python 结果: a=\`python python/pythonScript1.py "test"\``; echo $a 将打印您在 python 代码中打印的内容 (2认同)

aar*_*ler 8

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

python script.py $1 $2 $3
Run Code Online (Sandbox Code Playgroud)

像这样打印返回码:

echo $?
Run Code Online (Sandbox Code Playgroud)