Trên máy tính Ubuntu:exit (1) trong kết quả tập tin trong kịch bản mã trạng thái 0
$ php -v
PHP 5.5.10-1~dotdeb.1 (cli) (built: Mar 6 2014 18:55:59)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with uopz v2.0.4, Copyright (c) 2014, by Joe Watkins <[email protected]>
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
tập tin test.php của tôi rất đơn giản:
<?php
exit(1);
Tôi mong chờ lệnh này php test.php || echo "error"
để hiển thị " lỗi "nhưng nó thoát với mã trạng thái 0.
$ php test.php
$ echo $?
0
Nhưng trên cùng một máy có cùng mã, nhưng không có trong tệp hoạt động như mong đợi:
$ php -r "exit(1);" || echo "error"
error
hoặc
$ php -r "exit(1);"
$ echo $?
1
Trên máy tính khác nhau (archlinux) với php:
PHP 5.5.13 (cli) (built: May 29 2014 05:46:58)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
Mọi trường hợp làm việc như mong đợi, ngay cả khi đang chạy từ file mã trạng thái là 1.
Đây là vấn đề thực sự vì git hooks phụ thuộc vào mã trạng thái và Jenkins và Tôi không thể google nó ra.
Có thể liên quan đến cấu hình bằng cách nào đó không? Tôi đã kiểm tra cli php.ini và không thể tìm thấy bất cứ điều gì đáng ngờ.
Lần đầu tiên bạn bắt đầu 'php' và lần khác bạn bắt đầu' php5'. Có lẽ có một sự khác biệt trong đó? – GolezTrol
Thật kỳ lạ. Nó hoạt động ở đây: http://codepad.org/04NRRPxe. – Tyler
Hoạt động như mong đợi trên máy của tôi: https://pastee.org/9fk8k – hjpotter92