Pro*_*ner 5 shell bash wildcards for
我在网上找到了一个 for 循环示例。现在我想在我的代码中使用它,但我不确定这个循环是如何运行的
for entry in "$search_dir"/*
do
echo "$entry"
done
Run Code Online (Sandbox Code Playgroud)
现在我想问
当 shell 到达for-statement 时,它将扩展 的值$search_dir并执行文件名通配以生成将被迭代的目录条目列表。这只会发生一次,如果在$search_dir循环执行时里面的东西消失了或者有新的文件/目录添加到该目录中,这些更改将不会被接受。
如果循环对名称在 中的目录条目进行操作,则$entry可能需要测试它们是否存在于循环中,特别是如果已知循环需要很长时间才能运行并且有许多文件不断变化一个或另一个原因:
for entry in "$search_dir"/*; do
if [ -e "$entry" ]; then
# operate on "$entry"
else
# handle the case that "$entry" went away
fi
done
Run Code Online (Sandbox Code Playgroud)
正如 Stéphane 在评论中正确指出的那样,在大多数情况下,这是一个多余的测试。
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |