小编ANR*_*ANR的帖子

如何在expect shell脚本中获取生成进程的退出代码?

我正在尝试执行一个执行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"
Run Code Online (Sandbox Code Playgroud)

产生的脚本:

 [Linux Dev:anr ]$ cat tmp_script
 exit 3
Run Code Online (Sandbox Code Playgroud)

执行Expect脚本:

 [Linux Dev:anr ]$ ./testexit.sh
 exit 3
 spawn /home/anr/tmp_script_temp.sh
 spawned process status 0
 done
Run Code Online (Sandbox Code Playgroud)

问题是我无法获得生成的退出返回代码以期望脚本.我希望生成的脚本的退出代码3到主脚本,主脚本应该退出,退出代码为3.

请帮我将生成的退出代码导入主脚本.

unix linux bash shell expect

20
推荐指数
2
解决办法
2万
查看次数

标签 统计

bash ×1

expect ×1

linux ×1

shell ×1

unix ×1