![](/img/trans.png)
[英]How to get the exit code of a Bash script running from inside a Rust program?
[英]How do get any exit code in bash when running a script inside a script?
我正在尝试运行一个脚本,在该脚本中我运行另一个脚本,在该脚本运行后,我想检索退出代码并对其执行某些操作,但是每次我只会得到0
。
我还尝试了不同的方法来寻找它或将命令包装在函数中,并且还使用chmod -x
赋予了这两个执行权限。
灰
#!/usr/bin/env bash
mkdir data
mkdir -p data/test
b.sh
#!/usr/bin/env bash
set -x
(bash a.sh) &
pid=$!
wait $pid
exitCode=$?
echo $pid
echo $exitCode
bash b.sh
结果:
+ pid=7399
+ wait 7399
+ bash a.sh
mkdir: data: File exists
+ exitCode=0
+ echo 7399
7399
+ echo 0
0
bash a.sh
结果:
mkdir: data: File exists (no exit code)
结果与mkdir data
:
mkdir: data: File exists (exit code 1)
我知道我可以执行mkdir -p data
但这只是一个测试,以获取以后可以在脚本中使用的所有退出代码。
Bash版本:GNU bash,版本3.2.57(1)-发行版(x86_64-apple-darwin18)
使用以下命令解决了它: set -e
参考: https : //ss64.com/bash/set.html
这样可以在出现问题时立即退出。 在我的情况下,第二条命令返回0,这就是为什么我每次都得到0的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.