【发布时间】:2012-02-29 01:19:44
【问题描述】:
我的 KornShell (ksh) 脚本中有一个循环,我想至少执行一次,我想要一种优雅的方式来执行它,但是虽然我找到了很多关于如何编写 while 循环的资料,但似乎没有什么可以做的...while循环在那里。
我正在做的是从配置文件中读取以逗号分隔的文件列表并处理它们。如果文件列表为空,那么我要处理目录中的所有文件。
有什么好的方法可以做到这一点?
编辑:这是我目前拥有的。我抓取文件名,然后将其从字符串中删除以进行下一次传递。如果文件列表为空,我退出循环。但是,如果列表一开始是空的,我希望它仍然运行一次。
while [[ -n "${FILES%%,*}" ]]; do
FILE="${FILES%%,*}"
FILES="${FILES#*,}"
done
【问题讨论】:
-
你有没有先用谷歌搜索? cyberciti.biz/faq/ksh-for-loop
-
抱歉,ksh 中没有“Do ... while”。请考虑编辑您的问题,以包括迄今为止您在代码中的最佳通行证。当我们可以看到您正在使用的内容时,提供帮助会容易得多。祝你好运。
-
@shelter,一个普通的 while ... do ... 循环可以立即执行此操作。在别处查看我的答案。