shell脚本之for循环

本文详细介绍Bash脚本的基础用法,包括如何使用for循环进行文件操作、目录遍历和数学运算。通过实例展示了如何打印指定范围内的数字、求和以及在Linux环境下对/etc目录下的子目录进行遍历。

#! /bin/bash
for i in seq 1 100
do
echo $i
done
#打印1到100
在这里插入图片描述

#!/bin/bash
sum=0
for i in seq 1 100
do
sum=[[[sum+$i]
done
echo $sum

#求和,从1到100
在这里插入图片描述
[root@allen etc]# cat 456.sh
#!/bin/bash
cd /etc/
for a in ls /etc/
do
if [ -d $a ] #如果它是一个目录
then
echo $a
ls $a #就把它列出来
fi
done

[root@allen jie]# ls -l
总用量 0
-rw-r–r--. 1 root root 0 8月 31 10:53 1
-rw-r–r--. 1 root root 0 8月 31 10:53 2
-rw-r–r--. 1 root root 0 8月 31 10:53 3 4.txt

[root@allen jie]# for i in ls ./; do echo $i ; done
1
2
3
4.txt

#for 循环时,会以空格或者回车做为分隔符

[root@allen etc]# for i in 1 2 3; do echo $i; done
1
2
3

[root@allen etc]# for i in seq 1 3; do echo $i; done
1
2
3

Shell脚本中,`for`循环是一种非常常用的控制结构,用于重复执一段代码块,尤其适用于需要对多个项目进相同操作的场景。Shell中的`for`循环主要有以下几种形式: ### 1. 基于列表的`for`循环 这是最常见的一种`for`循环形式,语法如下: ```bash for variable in list do commands done ``` 其中,`list`是一个由空格分隔的元素列表,`variable`会在每次循环中依次取列表中的值。例如: ```bash for i in 1 2 3 4 5 do echo "Number: $i" done ``` 此脚本会依次输出数字1到5[^2]。 ### 2. 不带列表的`for`循环 当没有显式提供列表时,`for`循环会默认使用脚本时传入的参数作为列表。这种形式的语法如下: ```bash for variable do commands done ``` 例如,以下脚本接受命令参数,并对每个参数输出“hello”: ```bash #!/bin/bash for i do echo "hello" done ``` 运时传入参数如`./script.sh a b c`,将输出三次“hello”[^3]。 ### 3. 类C风格的`for`循环 Shell也支持类似C语言风格的`for`循环,适用于需要明确控制循环次数的情况。其语法如下: ```bash for (( expr1; expr2; expr3 )) do commands done ``` 其中: - `expr1`:定义并初始化循环变量; - `expr2`:循环条件判断; - `expr3`:循环变量的更新操作。 例如: ```bash for (( i=1; i<=5; i++ )) do echo "Iteration $i" done ``` 此脚本将输出从1到5的迭代次数[^3]。 ### 4. 嵌套`for`循环 可以在一个`for`循环内部再嵌套另一个`for`循环,以实现更复杂的逻辑。例如: ```bash for (( i=1; i<=3; i++ )) do for (( j=1; j<=2; j++ )) do echo "i=$i, j=$j" done done ``` 该脚本将输出所有`i`和`j`的组合值[^4]。 ### 5. 使用特殊选项控制输出 在实际应用中,常常会结合`echo`命令的特殊选项来控制输出格式。例如,`-n`选项可以防止换,而`-e`选项允许解释转义字符。以下是一个使用`-n`的示例: ```bash for i in 1 2 3 do echo -n "$i " done echo ``` 这段脚本将在同一输出`1 2 3`,并在最后换[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值