Ecco uno script che uso per eseguire grunt "a livello globale". È in una shell bash e SO vuole più contesto, quindi desidero il carattere di ritorno in modo che sia un po 'più "silenzioso" quando corro beast watch
.
beast() {
cd ~/root_install/grunt
local a="$1"
if [ $# -eq 0 ]
then
grunt &
fi
if [ $# -eq 1 ]
then
grunt "$a" &
fi
cd ~/root
}
Voglio un personaggio di ritorno in questa parte:
grunt "$a" &
dopo il &
risposte:
0 per risposta № 1Quando esegui grugnito otterrai uno dei seguenti codici di uscita.
- 0 - Nessun errore!
- 1 - Errore fatale
- 2 - Errore gruntfile mancante
- 3 - Errore dell'attività
- 4 - Errore di elaborazione del modello
- 5 - Errore delle regole di completamento automatico della shell non valido
- 6 - Avvertenza
Quello che puoi fare è afferrarlo come grunt "$a" &>/dev/null
quindi seleziona il risultato usando $?
Quindi puoi farlo if [ $? -eq 0 ]
come i controlli sul codice di ritorno.
&>/dev/null
Questa è solo un'abbreviazione per 2> & 1
Reindirizza il descrittore di file 2 e 1 (STDERR & STDOUT) su / dev / null
0 per risposta № 2
Quando si desidera creare un valore di ritorno, assegnare il valore di ritorno $?
ad esso:
grunt "$a" > grunt.log 2>&1
returnvalue=$?
È possibile modificare grunt.log in / dev / null. Dopo cd ~/root
puoi return ${returnvalue}
. Quando si desidera eseguire il grugnito in background, è possibile modificare la linea in
nohup grunt "$a" > grunt.log 2>&1 &
Questo ti darà una nuova sfida: quando iniziare in background ha successo e il grugnito fallisce in 2 secondi, il tuo $? returnvalue non lo noterà.
Come gestirlo?
Quando il valore di ritorno è 0, attendere qualche minuto (20 secondi?) E controllare il file di registro.