Tôi đang cố gắng viết một tập lệnh python trả về một giá trị mà sau đó tôi có thể chuyển sang tập lệnh bash. Thing là tôi muốn một giá trị singe trở lại trong bash, nhưng tôi muốn có một vài điều in đến các thiết bị đầu cuối trên đường đi.lấy tập lệnh python để in tới thiết bị đầu cuối mà không quay trở lại như một phần của stdout
Đây là tập lệnh mẫu. Hãy gọi nó là return5.py:
#! /usr/bin/env python
print "hi"
sys.stdout.write(str(5))
những gì tôi muốn là để có điều này thực hiện theo cách này khi tôi chạy nó từ dòng lệnh:
~:five=`./return5.py`
hi
~:echo $five
5
nhưng những gì tôi nhận được là:
~:five=`./return5.py`
~:echo $five
hi 5
Nói cách khác, tôi không biết làm thế nào để có một tập lệnh python in và xóa stdout, sau đó gán nó cho giá trị cụ thể mà tôi muốn.
Tôi nhầm lẫn - bạn nghĩ thiết bị đầu cuối IS là gì, nếu không phải là thiết bị đầu cuối? Nếu bạn chỉ cần chúng trên các dòng riêng biệt có thể sử dụng 'import sys; sys.stdout.flush() ' –
là những gì bạn sẽ được returing để shell luôn luôn sẽ là một số? bạn có thể sử dụng 'sys.exit (5)' và nhìn vào '$?'nhưng đây cũng là hành vi không tiêu chuẩn – Doon
Các mã thoát số không phải là" hành vi không chuẩn "theo bất kỳ nghĩa nào - đó là một khái niệm được thiết lập rất tốt. Một số môi trường có thể hạn chế phạm vi, mặc dù (chẳng hạn như 0-127). –