Sto provando ad eseguire uno script che esegue uno script EXPECT e un processo generato che contiene il codice di uscita. Ma non riesco a ottenere il codice di uscita del processo generato nello script principale. Sto sempre diventando zero come successo.Come ottenere il codice di uscita del processo generato nello script di shell previsto?
aspettarsi script è:
[Linux Dev:anr ]$ cat testexit.sh
#!/bin/bash
export tmp_script_file="/home/anr/tmp_script_temp.sh"
cp /home/anr/tmp_script $tmp_script_file
chmod a+x $tmp_script_file
cat $tmp_script_file
expect << 'EOF'
set timeout -1
spawn $env(tmp_script_file)
expect {
"INVALID " { exit 4 }
timeout { exit 4 }
}
EOF
echo "spawned process status" $?
rm -f $tmp_script_file
echo "done"
sceneggiatura Spawned:
[Linux Dev:anr ]$ cat tmp_script
exit 3
Esecuzione di Expect script:
[Linux Dev:anr ]$ ./testexit.sh
exit 3
spawn /home/anr/tmp_script_temp.sh
spawned process status 0
done
Il problema è che non sono in grado di ottenere il codice di uscita di ritorno generato da aspettati script Voglio il codice di uscita 3 dello script generato per lo script principale e lo script principale deve essere chiuso con il codice di uscita 3.
Please help me per ottenere il codice di uscita generato per lo script principale.
Provare a inserire una parte in un file separato, vale a dire lo script di attesa eseguibile e provare a ottenere lo stato di uscita. – PradyJord
@Jord, devo scrivere il metodo expect solo nello script della shell. Non dovrebbe essere un eseguibile separato. – ANR
Ho ricevuto una risposta da: [collegamento] (https://stackoverflow.com/questions/3299502/how-to-return-spawned-process-exit-code-in-expect-script) ma non riesco ad avviare la soluzione in il mio codice Sono una nuova ape per aspettarmi un metodo. – ANR