gpt4 book ai didi

linux - 如何在 bash 中循环获取退出状态

转载 作者:IT王子 更新时间:2023-10-29 00:08:59 28 4
gpt4 key购买 nike

我知道如何使用 $? 检查先前执行的命令的状态,我们可以使用 exit 命令创建该状态。但是 bash 中的循环总是返回状态 0 并且有什么方法可以用某些状态打破循环。

#!/bin/bash
while true
do
if [ -f "/test" ] ; then
break ### Here I would like to exit with some status
fi

done
echo $? ## Here I want to check the status.

最佳答案

循环的状态是最后执行的命令的状态。您可以使用 break 来跳出循环,但如果 break 成功,则循环的状态将为 0。但是,您可以使用子 shell 并退出而不是中断。换句话说:

for i in foo bar; do echo $i; false; break; done; echo $?  # The loop succeeds
( for i in foo bar; do echo $i; false; exit; done ); echo $? # The loop fails

您还可以将循环放在函数中并从中返回一个值。例如:

in() { local c="$1"; shift; for i; do test "$i" = "$c" && return 0; done; return 1; }

关于linux - 如何在 bash 中循环获取退出状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14059342/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com