Ich versuche ein Skript auszuführen, das ein EXPECT-Skript und einen erzeugten Prozess ausführt, in dem Exit-Code enthalten ist. Aber ich kann den Beendigungscode des erstellten Prozesses nicht zum Hauptskript abrufen. Ich werde immer Null als Erfolg.Wie bekomme ich den Exit-Code des erzeugten Prozesses im expect-Shell-Skript?
Skript erwarten ist:
[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"
Spawned Skript:
[Linux Dev:anr ]$ cat tmp_script
exit 3
Ausführung von Expect-Skript:
[Linux Dev:anr ]$ ./testexit.sh
exit 3
spawn /home/anr/tmp_script_temp.sh
spawned process status 0
done
Problem ist, ich bin nicht in der Lage den erzeugten Ausgang Return-Code zu erhalten, Skript erwarten. Ich möchte den Exit-Code 3 von launched Skript zu Hauptskript und Hauptskript sollte mit Exit-Code 3 beenden.
Bitte helfen Sie mir, den erzeugten Code zum Haupt-Skript erzeugt.
Versuchen Sie, erwarten Teil in einer separaten Datei, z. B. ausführbare expect-Skript und versuchen Sie und erhalten Sie den Exit-Status dann. – PradyJord
@Jord, ich muss nur im Shell-Skript Methode expect schreiben. Es sollte nicht separat ausführbar sein. – ANR
Ich habe eine Antwort von: [link] (https://stackoverflow.com/questions/3299502/how-to-return-spawned-process-exit-code-in-expect-script), aber nicht in der Lage, diese Lösung einzuleiten mein Code. Ich bin eine neue Biene für die Expect-Methode. – ANR