2015-12-09 8 views
14

पाइथन में नया मूल्य वापसी मूल्य। मैं एक पायथन लिपि बना रहा हूं जो एक स्ट्रिंग हैलो दुनिया लौटाता है। और एक खोल स्क्रिप्ट बना रहा हूँ। खोल से पायथन लिपि में एक कॉल जोड़ें।पाइथन लिपि से शेल स्क्रिप्ट

  1. मुझे खोल से पायथन तक तर्क पारित करने की आवश्यकता है।
  2. मुझे शैल स्क्रिप्ट में पायथन से मूल्य वापसी मुद्रित करने की आवश्यकता है।
इस

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

उत्तर

14

आप बाहर निकलने के कोड, केवल संख्या के रूप में वापस नहीं लौट सकते संदेश। बैश में यह $? के माध्यम से सुलभ हो सकता है। इसके अलावा, आप कोड मानकों तक पहुँचने के लिए sys.argv उपयोग कर सकते हैं:

import sys 
if sys.argv[1]=='hi': 
    print 'Salaam' 
sys.exit(0) 
खोल में

:

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

धन्यवाद अली। यह कोड ठीक काम कर रहा है। लेकिन मुझे एक स्ट्रिंग मान वापस करने की जरूरत है। यह कैसे संभव होगा? –

+0

आपको पाइथन परिणाम कैप्चर करना चाहिए: a = \ 'पायथन पायथन/पायथनस्क्रिप्ट 1.py "परीक्षण" \ ''; echo $ a e प्रिंट प्रिंट करें जो आप पाइथन कोड –

+0

ys में प्रिंट करते हैं, यह काम करता है, धन्यवाद ali –

1

दर्रा आदेश पंक्ति तर्क इस तरह अजगर स्क्रिप्ट शेल के लिए है:

इस तरह
python script.py $1 $2 $3 

प्रिंट वापसी कोड:

echo $? 
संबंधित मुद्दे