如何将另一个 bash 脚本或 perl 脚本的退出返回到另一个 bash 脚本



我在脚本内部调用 run.sh 脚本 sample.sh 需要获取 sample.sh 中 run.sh 的状态。我想知道如何做到这一点。

sample.sh

for var in ${testcases[@]}
do
  cd $unitdir
  run.sh
  echo " status $_ "
  if [[ $_ != 0 ]] ; then
    echo "******Test failed"
  else
    echo "******Test passed"
  fi
done;

run.sh 脚本如下所示。如果测试脚本通过,则返回 0,如果失败,则返回非零退出。

res=`diff $silverout $goldout`
if [ "${res}" != "" ] ; then
  exit 131
else
  exit 0
fi

但是,当我打印 run.sh 的状态时,它是状态。你能告诉我如何捕捉 run.sh 的状态吗?谢谢

这是

你需要$?,而不是$_。将脚本中的$_替换为 $?

另外,我认为 echo 是一个普通命令,具有

自己的退出状态,因此您应该在 echo 工作后注释掉或删除该命令。

最新更新