小编典典

在 Bash 中模拟 do-while 循环

all

在 Bash 中模拟 do-while 循环的最佳方法是什么?

我可以在进入while循环之前检查条件,然后继续重新检查循环中的条件,但这是重复的代码。有没有更清洁的方法?

我的脚本的伪代码:

while [ current_time <= $cutoff ]; do
    check_if_file_present
    #do other stuff
done

check_if_file_present如果在该时间之后启动,这不会执行$cutoff,而 do-while 会。


阅读 95

收藏
2022-07-17

共1个答案

小编典典

两个简单的解决方案:

  1. 在while循环之前执行一次你的代码

    actions() {
    

    check_if_file_present
    # Do other stuff
    }

    actions #1st execution
    while [ current_time <= $cutoff ]; do
    actions # Loop execution
    done

  2. 或者:

    while : ; do
    actions
    [[ current_time <= $cutoff ]] || break
    

    done

2022-07-17