Shell 遍历是指在 Shell 脚本中利用循环语句和命令来遍历目录、文件、列表等内容,从而实现对内容的处理和操作。Shell 遍历是 Shell 编程的基础之一,掌握 Shell 遍历对于编写高效的 Shell 脚本非常重要。
一、Shell遍历日期
在 Shell 脚本中,获取日期是常见的需求之一。使用 date 命令可以获取当前系统日期,也可以通过给 date 命令传参来获取特定日期。以下是一个使用 for 循环遍历日期的例子:
#!/bin/bash for ((i=1; i<=31; i++)) do date=$(date -d "2022-10-$i" +%Y%m%d) echo $date done
上述代码使用 for 循环遍历 10 月份的所有日期,并输出日期的格式化结果。
二、Shell遍历从后向前for循环
在 Shell 脚本中,从后向前遍历数组或者列表是常见需求之一。使用倒序的 for 循环可以实现该目标。以下是一个使用倒序 for 循环遍历数组的例子:
#!/bin/bash my_array=(apple banana cherry durian) for ((i=${#my_array[@]}-1; i>=0; i--)) do echo "${my_array[$i]}" done
上述代码使用倒序的 for 循环遍历数组,并输出数组的每个元素。
三、Shell遍历命令
在 Shell 脚本中,经常需要遍历命令的输出结果,并做出相应的处理。使用 for 循环可以实现该目标。以下是一个使用 for 循环遍历命令输出的例子:
#!/bin/bash for i in $(ls /var/log) do echo $i done
上述代码使用 ls 命令输出 /var/log 目录下的文件名,并使用 for 循环遍历每个文件名,并输出到控制台。
四、Shell遍历文件夹
在 Shell 脚本中,遍历文件夹是常见需求之一。使用 for 循环可以实现该目标。以下是一个使用 for 循环遍历文件夹的例子:
#!/bin/bash for dir in $(find /home/ -type d) do echo $dir done
上述代码使用 find 命令遍历 /home 目录下的所有子目录,并使用 for 循环遍历每个目录名,并输出到控制台。
五、Shell遍历列表
在 Shell 脚本中,使用列表是常见需求之一。使用 for 循环可以实现遍历列表的目标。以下是一个使用 for 循环遍历列表的例子:
#!/bin/bash my_list="apple banana cherry durian" for fruit in $my_list do echo $fruit done
上述代码使用 for 循环遍历 my_list 列表,并输出列表的每个元素。
六、Shell遍历文件夹所有文件
在 Shell 脚本中,遍历文件夹所有文件是常见需求之一。使用 find 命令配合 for 循环可以实现该目标。以下是一个使用 for 循环遍历文件夹所有文件的例子:
#!/bin/bash for file in $(find . -type f) do echo $file done
上述代码使用 find 命令查找当前目录下的所有文件,并使用 for 循环遍历每个文件名,并输出到控制台。
七、Shell遍历csv
在 Shell 脚本中,遍历 csv 文件是常见需求之一。通常使用 while 循环结合 read 命令来实现遍历 csv 文件的目标。以下是一个使用 while 循环遍历 csv 文件的例子:
#!/bin/bash while IFS=, read name age sex do echo "Name: $name" echo "Age: $age" echo "Sex: $sex" done < data.csv
上述代码使用 while 循环遍历 data.csv 文件的每一行,并通过 read 命令将每一行的数据按列分割,并输出到控制台中。
八、Shell遍历find结果
在 Shell 脚本中,使用 find 命令来查找文件和目录是常见需求之一。使用 for 循环可以遍历 find 命令的输出结果。以下是一个使用 for 循环遍历 find 命令输出结果的例子:
#!/bin/bash for file in $(find /home/user -name "*.txt") do echo $file done
上述代码使用 find 命令查找 /home/user 目录下扩展名为 .txt 的文本文件,并使用 for 循环遍历每个文件名,并输出到控制台。
九、Shell遍历数组
在 Shell 脚本中,遍历数组是常见需求之一。使用 for 循环可以实现该目标。以下是一个使用 for 循环遍历数组的例子:
#!/bin/bash my_array=(apple banana cherry durian) for fruit in "${my_array[@]}" do echo $fruit done
上述代码使用 for 循环遍历 my_array 数组,并输出数组的每个元素。
十、Shell遍历一个数组选取
在 Shell 脚本中,从一个数组中选取一部分元素进行遍历和处理是常见需求之一。使用 for 循环结合 if 条件判断可以实现该目标。以下是一个使用 for 循环和 if 条件判断遍历数组的例子:
#!/bin/bash my_array=(apple banana cherry durian) selected_elements=("apple" "cherry") for fruit in "${my_array[@]}" do for selected_fruit in "${selected_elements[@]}" do if [[ $fruit == $selected_fruit ]] then echo "Selected fruit: $fruit" fi done done
上述代码使用 for 循环遍历 my_array 数组的所有元素,并使用 if 条件判断选取在 selected_elements 数组中的元素,最后输出选取的元素。