我试图执行一个脚本,该脚本执行了一个带有退出码的被孵化进程和EXPECT脚本。但是我无法将被孵化进程的退出码获取到主脚本中。我总是得到零作为成功的返回值。
EXPECT脚本如下:
[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"
生成的脚本:
[Linux Dev:anr ]$ cat tmp_script
exit 3
Expect脚本的执行:
[Linux Dev:anr ]$ ./testexit.sh
exit 3
spawn /home/anr/tmp_script_temp.sh
spawned process status 0
done
问题是我无法获取从expect脚本中生成的退出返回代码。我希望将生成的脚本的退出代码3传递给主脚本,并且主脚本应该以退出代码3退出。
请帮助我将生成的退出代码传递给主脚本。