Comment obtenir le code de sortie du processus généré dans un script shell?
Je suis en train d'exécuter un script qui exécute un script expect et donné naissance à un processus qui a le code de sortie. Mais je ne suis pas en mesure d'obtenir le code de sortie du processus engendré de script principal. Je suis toujours à zéro, parce que le succès.
attendre script est :
[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"
Engendré script:
[Linux Dev:anr ]$ cat tmp_script
exit 3
Exécution de script expect:
[Linux Dev:anr ]$ ./testexit.sh
exit 3
spawn /home/anr/tmp_script_temp.sh
spawned process status 0
done
Problème est que je n'arrive pas à obtenir la donné naissance à la sortie de code de retour de s'attendre à ce script. Je veux le code de sortie 3 de a engendré script script principal et principal script doit être sortie avec le code de sortie 3.
Merci de m'aider à obtenir le pondu le code de sortie de script principal.
source d'informationauteur ANR
Vous devez vous connecter pour publier un commentaire.
Vous obtenez le statut de sortie du processus générés dynamiquement avec la
wait
commande:De la attendre l'homme page
Changement
à
Puis ajouter le
lassign
etif
commandes.Avec l'aide de glenn, j'ai eu la solution.. et mon script final est::
script expect est
Engendré script:
Exécution de script expect:
Merci Glenn encore une fois..
Être sûr d'échapper à l' $ dans le fait de s'attendre d'entrée afin qu'il soit interprété par le shell.