加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 在bash脚本中,如何在while循环条件下调用函数

发布时间:2020-12-14 01:36:43 所属栏目:Linux 来源:网络整理
导读:下面是我的 shell脚本.如何比较while循环条件块中函数的退出状态?无论我从check1函数返回什么,我的代码进入while循环 #!/bin/sh check1() { return 1 } while [ check1 ] do echo $? check1 if [ $? -eq 0 ]; then echo "Called" else echo "DD" fi sleep 5
下面是我的 shell脚本.如何比较while循环条件块中函数的退出状态?无论我从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

解决方法

删除测试命令 – 也称为[.所以:

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

    if check1
    then
        echo 'check1 was successful'
    fi

done

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

顺便说一句,如果你必须测试$?显式(通常不需要)然后(在Bash中)(())构造通常更容易阅读,如:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读