web-dev-qa-db-fra.com

retourne la valeur de python au script Shell

suis nouveau en python. Je crée un script python qui renvoie une chaîne bonjour. et je crée un script Shell. Ajoutez un appel de Shell à python.

  1. j'ai besoin de passer des arguments de Shell à python.
  2. j'ai besoin d'imprimer le retour de valeur de python dans le script Shell.

c'est mon code

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') 
19
Abdul Manaf

Vous ne pouvez pas renvoyer de message comme code de sortie, uniquement des chiffres. En bash, il peut être accessible via $?. Vous pouvez également utiliser sys.argv pour accéder aux paramètres du code:

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

dans 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
22
Ali Nikneshan

Passez les arguments de ligne de commande au script Shell à Python comme ceci:

python script.py $1 $2 $3

Imprimez le code retour comme ceci:

echo $?
3