su Ubuntu macchina:uscita (1) nei risultati di file nello script codice di stato 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
Il mio file test.php è semplice:
<?php
exit(1);
mi aspetterei questo comando php test.php || echo "error"
per mostrare " errore", ma esce con codice di stato 0.
$ php test.php
$ echo $?
0
ma sulla stessa macchina lo stesso codice, ma non nel file funziona come atteso:
$ php -r "exit(1);" || echo "error"
error
o
$ php -r "exit(1);"
$ echo $?
1
Sulla macchina differente (Archlinux) con 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
Tutti i casi funzionano come previsto, anche quando il codice viene eseguito dal file il codice di stato è 1.
Questo è un vero problema perché git git dipende da questi codici di stato e Jenkins e Non potrei google fuori.
Potrebbe essere in qualche modo correlato alla configurazione? Ho controllato cli php.ini e non ho trovato nulla di sospetto.
La prima volta che si avvia 'php' e le altre volte si avvia' php5'. Forse c'è una differenza in questo? – GolezTrol
È strano. Funziona qui: http://codepad.org/04NRRPxe. – Tyler
Funziona come previsto sulla mia macchina: https://pastee.org/9fk8k – hjpotter92