gpt4 book ai didi

shell - KornShell (ksh) 是否有 Do...While 循环?

转载 作者:行者123 更新时间:2023-12-02 05:38:26 26 4
gpt4 key购买 nike

我的 KornShell (ksh) 脚本中有一个循环,我想至少执行一次,并且我想要一种优雅的方式来执行它,但是虽然我已经找到了很多关于如何编写 while 循环的东西,但是do...while 循环似乎没什么意义。

我正在做的是从配置文件中读取以逗号分隔的文件列表并处理它们。如果文件列表为空,那么我想处理目录中的所有文件。

执行此操作的好方法是什么?

编辑:这是我目前拥有的。我获取文件名,然后将其从字符串中删除以用于下一次传递。如果文件列表为空,我将退出循环。但是,如果列表一开始是空的,我希望它仍然运行一次。

  while [[ -n "${FILES%%,*}" ]]; do
FILE="${FILES%%,*}"
FILES="${FILES#*,}"
done

最佳答案

是的,ksh 中的标准 while 循环支持开箱即用:

while ...; do ...; done

标准的 while 循环有代码块 beforeafter do

每个 block 可能包含多个命令。通常我们只使用第一个 block 的单个命令,其退出状态决定是否循环终止或继续。

当我们使用多个命令时,只有最后一个命令的状态很重要。

while
echo do this always # replace with your code
[[ -n "${FILES%%,*}" ]]
do
FILE="${FILES%%,*}"
FILES="${FILES#*,}"
done

关于shell - KornShell (ksh) 是否有 Do...While 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179211/

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