2015-12-09 37 views
14

sono nuovo in python. sto creando uno script Python che restituisce un mondo Ciao corda. e sto creando uno script di shell. aggiungi una chiamata dalla shell allo script python.valore di ritorno dallo script python allo script di shell

  1. ho bisogno di passare argomenti dalla shell a python.
  2. Ho bisogno di stampare il valore restituito da python nello script della shell.

questo è il mio codice

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') 

risposta

14

Non è possibile tornare messaggio come codice di uscita, solo numeri. In bash può essere accessibile tramite $?. Inoltre è possibile utilizzare sys.argv per accedere ai parametri di codice:

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

in guscio:

#!/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 
+0

grazie ali. questo codice funziona bene. ma ho bisogno di restituire un valore stringa. come sarà possibile? –

+0

si dovrebbe acquisire il risultato python: a = \ 'python python/pythonScript1.py" test "\' '; echo $ a stampa ciò che si stampa in python code –

+0

ys, funziona, grazie –

1

argomenti della riga di comando Passo a Shell script Python come questo:

python script.py $1 $2 $3 

Stampa il codice di ritorno in questo modo:

echo $? 
Problemi correlati