2015-12-09 12 views
14

am mới trong python. đang tạo một tập lệnh python trả về chuỗi hello world. và sáng tạo một kịch bản lệnh shell. thêm một cuộc gọi từ shell vào kịch bản python.giá trị trả lại từ tập lệnh python đến tập lệnh shell

  1. tôi cần chuyển đối số từ trình bao tới python.
  2. tôi cần in giá trị trả lại từ python trong tập lệnh shell.

đây là mã của tôi

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

Trả lời

14

Bạn không thể trở về thông điệp dưới dạng mã lối ra, chỉ số. Trong bash nó có thể truy cập thông qua $?. Ngoài ra bạn có thể sử dụng sys.argv để truy cập các thông số mã:

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

trong vỏ:

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

nhờ ali. mã này hoạt động tốt. nhưng tôi cần trả lại một giá trị chuỗi. làm thế nào nó sẽ có thể? –

+0

bạn nên bắt giữ kết quả python: a = \ 'python python/pythonScript1.py" test "\' '; echo $ a sẽ in những gì bạn in trong mã python –

+0

ys, hoạt động của nó, cảm ơn bạn ali –

1

đối số dòng lệnh Pass để shell script để Python như thế này:

python script.py $1 $2 $3 

In mã trở lại như thế này:

echo $? 
Các vấn đề liên quan