APPLICATION_LOG_DIR=/home/users/sosst51/test-chinboon/logs/testdata1
PREFIX=mylog
for i in `ls ${APPLICATION_LOG_DIR}/${PREFIX}*`
这是for loop
,我将目录的ls
传递给i
。
答案 0 :(得分:3)
在bash中,for s in string
将获取一个字符串并将其拆分为空白,并迭代每个单词。所以:
for s in a b c; do echo $s; done
会打印:
a
b
c
通过传递ls的输出,您将遍历该目录中的所有文件(但要小心,如果任何文件名包含空格,它将会中断)。这个特别是迭代以“mylog”开头的文件。
答案 1 :(得分:1)
是的,这是一个for
循环。是的,ls
命令的输出用于提供$i
所需的值列表。
ls
命令的输出在空白处分成单独的单词(例如换行符,空格或制表符)。这意味着如果任何文件名包含空格,则名称将被拆分为两个(或更多)组件。