2011-12-07 28 views
6

Nếu tôi gọi một lệnh (trong trường hợp của tôi kịch bản khác) với xterm như vậy:Làm cách nào để lấy mã thoát của lệnh chứ không phải lệnh xterm?

xterm -e sh second.sh 

Giá trị trong $? sau khi lợi nhuận xterm là mã trạng thái thoát của xterm (thường đối với tôi 0) chứ không phải kịch bản của tôi .

Có cách nào để lấy mã trạng thái thoát của tập lệnh của tôi không?

Trả lời

5

Bạn có thể làm một cái gì đó như thế này:

statusfile=$(mktemp) 
xterm -e sh -c 'yourcommand; echo $? > '$statusfile 
status=$(cat $statusfile) 
rm $statusfile 

Các trạng thái thoát của yourcommand tại là trong biến status.

+2

+1. Có vẻ như không có cách nào để có 'xterm' báo cáo trạng thái lệnh trực tiếp. –

+0

Để kiểm tra, tôi đã tạo một tập lệnh chỉ cần 'thoát 0'. Sau đó tôi gọi tập lệnh này thay vì thư mục của bạn. Mã thoát luôn là 127. Nếu tôi thay thế thư mục của bạn bằng, nói, 'ngủ 10' thì mã thoát là chính xác: S – neildeadman

+0

bỏ qua tôi ... đã làm việc đó .. cảm ơn! – neildeadman

Các vấn đề liên quan