欢迎各位兄弟 发布技术文章
这里的技术是共享的
在Linux中,for
循环经常用于shell脚本(如bash、sh等)来迭代字符串或数字列表。以下是几个for
循环的示例:
迭代字符串列表:
bash复制代码#!/bin/bash
for fruit in apple banana cherry; do echo "I like $fruit" done
当你运行这个脚本时,它会输出:
bash复制代码I like apple I like banana I like cherry
迭代数字列表(使用seq命令):
bash复制代码#!/bin/bash
for i in $(seq 1 5); do echo "Number is $i" done
或者,在bash中,你可以直接使用{1..5}
:
bash复制代码#!/bin/bash
for i in {1..5}; do echo "Number is $i" done
当你运行这个脚本时,它会输出数字1到5。
读取文件中的每一行:
bash复制代码#!/bin/bash
while IFS= read -r line; do echo "Processing: $line" done < filename.txt
或者,使用for
循环和文件描述符(这种方法不常用,但可以用于理解):
bash复制代码#!/bin/bash
exec 3< filename.txt # 打开文件并为其分配文件描述符3 while read -r line <&3; do # 从文件描述符3读取 echo "Processing: $line" done exec 3<&- # 关闭文件描述符3
迭代目录中的文件:
bash复制代码#!/bin/bash
for file in /path/to/directory/*; do if [ -f "$file" ]; then # 确保是一个文件 echo "File: $file" fi done
这个脚本会迭代/path/to/directory/
目录中的所有文件和目录,但只会输出文件的名字(使用-f
测试)。如果你还想包括子目录中的文件,你可以使用find
命令。
注意:在编写shell脚本时,确保你的脚本有正确的执行权限(使用chmod +x scriptname.sh
命令)。然后,你可以通过./scriptname.sh
来运行它。