一、for循环介绍
对于Linux运维工程师来说,Shell编程是重要的技能之一,而for循环是Shell编程中最基本的命令之一,其语法如下:
for VARIABLE_NAME in ITEM_1 ITEM_2 ITEM_3 ... ITEM_N
do
command1
command2
...
commandN
done
其中,VARIABLE_NAME表示循环迭代的变量,ITEM_1到ITEM_N为需要迭代的内容,command1到commandN为要执行的命令。
二、for循环遍历文件夹
现在,我们来看看如何使用for循环遍历文件夹。假设我们需要遍历名为Documents的文件夹,以下是对应的代码示例:
#!/bin/bash
for file in ~/Documents/*
do
echo $file
done
在上述代码中,~代表当前用户的home目录,~/Documents/*代表要迭代的Documents文件夹下所有文件和文件夹的路径。echo命令将每个文件和文件夹的路径输出到终端。
如果我们需要过滤掉特定文件类型,则可以使用if语句进行判断。例如,只输出Documents文件夹下的PNG图片,则可以使用以下代码:
#!/bin/bash
for file in ~/Documents/*
do
if [ ${file: -4} == ".png" ]
then
echo $file
fi
done
在上述代码中,if语句判断$file的最后四位是否为".png",如果是,则输出文件路径。
三、for循环遍历多个文件夹
有些时候,我们需要遍历多个文件夹,这时可以使用嵌套的for循环。以下是遍历Documents和Downloads两个文件夹的示例代码:
#!/bin/bash
for dir in ~/Documents ~/Downloads
do
for file in $dir/*
do
echo $file
done
done
在上述代码中,第一个for循环遍历Documents和Downloads文件夹,第二个for循环遍历每个文件夹中的所有文件和文件夹,并输出它们的路径。
四、总结
本文介绍了如何使用for循环遍历文件夹,在遍历单个文件夹、过滤文件类型和遍历多个文件夹等方面进行了详细的阐述。通过这些示例代码,你可以更加灵活地掌握Shell编程中的for循环命令,提高你的工作效率。