gpt4 book ai didi

linux - 在 bash 脚本中,如何在 while 循环条件中使用函数退出状态

转载 作者:IT王子 更新时间:2023-10-29 00:46:52 30 4
gpt4 key购买 nike

下面是我的 shell 脚本。如何比较while循环条件 block 中函数的退出状态?无论我从 check1 函数返回什么,我的代码都会进入 while 循环

#!/bin/sh
check1()
{
return 1
}

while [ check1 ]
do
echo $?
check1
if [ $? -eq 0 ]; then
echo "Called"
else
echo "DD"
fi
sleep 5
done

最佳答案

删除 test 命令 - 也称为 [。所以:

while check1
do
# Loop while check1 is successful (returns 0)

if check1
then
echo 'check1 was successful'
fi

done

从 Bourne 和 POSIX shell 派生的 shell 在条件语句之后执行命令。一种看待它的方法是 whileif 测试成功或失败,而不是 true 或 false(尽管 true 被认为是成功的) .

顺便说一下,如果你必须显式地测试 $?(这并不经常需要),那么(在 Bash 中)(( )) 结构通常更容易阅读,如:

if (( $? == 0 ))
then
echo 'worked'
fi

关于linux - 在 bash 脚本中,如何在 while 循环条件中使用函数退出状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674687/

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