2012-03-23 12 views
5

Ho uno script Perl che eseguirà tre applicazioni. Tutto ha uno stato di codice di uscita diverso.Lo stato di codice di uscita con valore zero significa sempre eseguito correttamente in Perl?

Lo stato del primo codice di uscita dell'applicazione è 1. L'applicazione è stata chiusa normalmente senza alcun problema. (Operazione riuscita)

Lo stato del secondo codice di uscita dell'applicazione è 99. Tuttavia, l'applicazione è stata chiusa normalmente senza alcun problema. (Operazione riuscita)

Infine, lo stato del codice di uscita della terza applicazione è 0. Lo stesso con il primo e il secondo, l'applicazione è stata chiusa normalmente senza alcun problema. (Operazione riuscita)

Nota: è già possibile spostare lo stato del codice di uscita di 8 bit a destra.

La domanda è, lo stato del codice di uscita torna sempre a 0 se eseguito correttamente?

Per favore nessun commento aspro, ho appena confuso. Per favore consiglio

risposta

7

Lo stato di ritorno viene scelto dal processo figlio. È convenzionalmente azzerato per operazioni riuscite, ma non c'è nulla per far rispettare questa convenzione.

È inoltre possibile che i processi restituiscano lo stato informativo che indicano diverse forme di successo. Ad esempio, un programma che modifica tutti i file in una directory può restituire un valore diverso da zero per dire che non ci sono file da modificare.

È necessario controllare la documentazione delle applicazioni per verificare se viene indicato qualcosa sui valori che possono essere restituiti. Se non riesci a trovare nulla, dovresti decidere empiricamente quali valori indicano il successo.

4

La maggior parte degli ambienti di sistemi operativi suggerisce e fornisce supporto per zero come codice di uscita riuscito e altri valori che indicano una sorta di stato: se ordinario o eccezionale è documentato individualmente per ciascun programma.

Anche il semplicistico MSDOS fornisce un buon supporto per un file batch per rispondere a un determinato errorlevel e fare qualcosa di diverso.

Un ambiente che presenta forti reazioni predefinite a uno stato di ritorno diverso da zero è la famiglia di sistemi operativi VMS/OpenVMS. Se le applicazioni potrebbero essere eseguite lì, si prega di seguire lo standard.

Problemi correlati