Se l'utente rifiuta un prompt "continua?", quale codice di uscita deve essere restituito?

5

Negli script basati sul terminale (Shell, Bash, Python, ecc.), se si richiede all'utente "Vuoi continuare?" e l'utente sceglie "No" , quale codice di uscita dovrebbe idealmente restituire lo script?

Da una parte, lo script è stato eseguito come l'utente se l'aspettava (l'utente voleva uscire, quindi ha smesso), quindi dovrebbe fornire un codice di uscita di 0 . D'altra parte, lo script non è stato in grado di completare l'attività principale, che dovrebbe essere un codice di uscita diverso da zero.

    
posta IQAndreas 28.09.2013 - 00:10
fonte

2 risposte

8

Non esiste uno standard reale su questo, a parte "zero significa continuare ad andare".

Quindi dipende da cosa dovrebbe accadere di solito in una situazione in cui lo fai:

$ your-script && do-something-else

... e l'utente annulla in your-script . Il comportamento desiderato è saltare questo passaggio e continuare (ad esempio, your-script è completamente facoltativo)? Quindi un codice di uscita zero è appropriato. Ma se, in genere, continuare dopo che l'utente ha cancellato il tuo script è inappropriato, allora dovresti tornare diverso da zero. In caso di dubbio, usa un valore diverso da zero: altrimenti chi chiama il tuo script non sarà in grado di distinguere tra "utente cancellato" e "utente ha detto sì e tutto ha funzionato come previsto" - scartare un codice di uscita diverso da zero è facile, ma capire cosa è successo se il codice è zero in entrambi i casi non lo è.

Assicurati di utilizzare codici di uscita distinti per "utente cancellato" e "qualcosa è andato terribilmente male" e, naturalmente, documento .

    
risposta data 28.09.2013 - 00:37
fonte
0

Lo script è stato in grado di completare il suo compito principale: rispondere senza errori all'utente. Non è come se avesse un problema di autorizzazione, un segfault, un file mancante o qualcosa del genere. Era il comportamento previsto da interrompere.

Gli errori dovrebbero essere usati quando comportamenti non voluti accadono: l'utente voleva che il programma eseguisse un'attività e il programma non poteva.

    
risposta data 28.09.2013 - 00:27
fonte

Leggi altre domande sui tag