Linux Shell for循环结构
**循环结构
1:循环开始条件
2:循环操作
3:循环终止的条件**
**shell语言
for,while,util**
**
for循环**
语法:
(1)
for 变量 in 取值列表;do
statement
statement
done
(2)
for 变量 in 取值列表
do
statement
statement
done
上面两个用法的效果是一样的。
**取值列表:
数字
10 20 30
使用seq命令生成数字的序列
seq 10
seq 3 10
seq 1 2 10
字符
aa bb cc
文件
**
示例
seq可以快速去值,奇数等
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@wei for]# seq 5
1
2
3
4
5
[root@wei for]# seq 2 6
2
3
4
5
6
|
示例:1–100的累加和
1
2
3
4
5
6
7
8
9
10
11
|
#!/bin/bash
#
sum=0
for i in `seq 1 100`
do
let sum=$sum+$i
done
echo $sum
[root@wei for]# bash 1.sh
5050
|
示例:1–100的奇数累加和
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#!/bin/bash
sum=0
for i in `seq 100`
do
let ys=$i%2
if [ $ys -ne 0 ];then
let sum=$sum+$i
fi
done
echo $sum
[root@wei for]# bash 2.sh
2500
|
创建10个用户,初始密码为:root,登陆重新修改密码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#!/bin/bash
#
for i in `seq 10`
do
if ! id user$i &> /dev/null ; then
useradd user$i
echo "root" | passwd --stdin user$i &> /dev/null
passwd -e user$i &> /dev/null
echo "用户user$i创建完成,初始密码为:root"
else
echo "用户user$i已经存在"
fi
done
|
以字符作为取值类表
1
2
3
4
5
6
7
|
#!/bin/bash
#
for name in a d c d ;do
useradd $name
echo "$name create finishe"
done
|
以文件作为取值列表
** `cat file`
编写脚本,读取文本**
1
2
3
4
5
6
7
8
|
#!/bin/bash
#
for i in `cat /shell/for/1.txt`;do
echo "line:$i"
done
[root@wei for]# ./wen.sh
line:nangong
line:chengfneg
|