我试图执行一个脚本,该脚本执行一个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
问题是我无法获得生成的退出返回代码以期望脚本。我希望生成脚本的退出代码3到主脚本,并且主脚本应该以退出代码3退出。
请帮助我将生成的退出代码获取到主脚本。
在格伦的帮助下,我得到了解决方案..我的最终脚本是::
期望脚本是
[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
}
foreach {pid spawnid os_error_flag value} [wait] break
if {$os_error_flag == 0} {
puts "exit status: $value"
exit $value
} else {
puts "errno: $value"
exit $value
}
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
exit status: 3
spawned process status 3
done
再次感谢格伦..
我试图执行一个脚本,该脚本执行一个EXPECT脚本和一个包含退出代码的派生进程。但是我无法将生成的进程的退出代码获取到主脚本。我总是得到零作为成功。 expect脚本是: 衍生脚本: Expect脚本的执行: 问题是,我无法获取生成的退出返回代码以期望脚本。我希望生成的脚本的退出代码为3到主脚本,主脚本应该以退出代码3退出。 请帮助我将生成的退出代码添加到主脚本。
问题内容: 我使用Expect运行测试脚本。通过退出代码测试返回成功/失败。但期望返回等效的退出代码。如何使期望返回正确的退出状态? 我的测试是使用 psql (postgresql命令处理器)运行的sql脚本。由于psql不允许将数据库密码指定为命令行参数,因此需要 脚本来 执行。 因此,我的期望脚本如下所示: 问题答案: 您已经在循环结束时等待了,您只需要使用和结果即可: 以0退出。 以1.退
问题内容: 目的:使用指定的参数调用外部应用程序,然后退出脚本。 以下脚本无法正常工作: 尝试过的事情:-不分离。提前谢谢了 问题答案: 从node.js文档中: 默认情况下,父级将等待分离的子级退出。为防止父级等待给定的子级,请使用child.unref()方法,并且父级的事件循环将其引用计数中不包括该子级。 使用detached选项启动长时间运行的进程时,除非该进程提供了未连接到父级的stdi
问题内容: 我正在编写几个Java程序,在完成我想做的所有事情之后,需要在单独的JVM中终止/清理工作。为此,我将需要获取要创建的Java进程的PID。 问题答案: 在Windows和Unix上均可使用。您可以使用从Java程序中调用此命令。的样本输出如下 您可能需要对此进行解析,然后检查标准名称,然后从相应的行中获取pid。
本文向大家介绍C# 获取进程退出代码的实现示例,包括了C# 获取进程退出代码的实现示例的使用技巧和注意事项,需要的朋友参考一下 我需要写一个程序,让这个程序知道另一个程序是否正常退出,于是就需要获取这个进程的退出代码 在程序如果需要手动退出,可以设置当前的退出代码 这时的程序运行就退出,同时退出的代码就是 -100 这和 C 语言的在 main 函数返回值一样 在 C# 如果想要实现 C 语言的
问题内容: 在Jenkinsfile Groovy脚本阶段,假设我要发出一个Linux命令来输出字符串的行和列,并想要在特定行的输出中获取第n列。这样的命令的一个示例是“ ls -al”。所以我这样做正确吗? 但是,如何获取本质上为$ {COL [4]}的值,该值是“ ls -al”命令的第五列,即目录大小? 谢谢! 问题答案: 您在示例中显示的bash脚本不会返回正确的目录大小。它将以递归方式返