shell中的循环语句
shell中的循环语句
for循环
for语法格式1:
for 变量 in 值1 值2 值3 值4 值5 值6 ... ...
do
命令
done
for i in 1 88 3 90
do
echo $1
done
[root@vh01 script]# vim f.sh
#!/bin/bash
for i in 1 88 3 90 a tt qq
do
echo $i
done
for i in a b c
do
echo "nihao"
done
[root@vh01 script]# vim ping1.sh
#!/bin/bash
for i in `seq 100 120`
do
ping -c 3 -i 0.1 -w 2 192.168.4.$i &>/dev/null
if [ $? -eq 0 ];then
echo "host 192.168.4.$i is up"
else
echo "host 192.168.4.$i is down"
fi
done
脚本:循环将/var/log/所有内容tar打包
#!/bin/bash
for i in `ls /var/log`
do
tar -czf /tmp/$i.tar.gz /var/log/$i
done
利用文件的名字创建用户
[root@vh01 script]# vim user.txt
jim
bob
harry
liang
[root@vh01 script]# vim useradd.sh
#!/bin/bash
for i in `cat user.txt`
do
useradd $i
echo '123'|passwd --stdin $i
done
for语法格式2:
for ((i=1;i<=5;i++))
do
echo $i
done
for ((i=10;i>=1;i--))
do
echo $i
done
乘法表
[root@vh01 script]#
#!/bin/bash
for ((i=1;i<=9;i++))
do
for ((j=1;j<=i;j++))
do
if [ $[i*j] <10 ];then
echo -n "$i*$j=$[i*j] "
elif [ $[i*j] >=10 ];then
echo -n "$i*$j=$[i*j] "
fi
done
echo
done
[root@vh01 script]# chmod +x calculation.sh
[root@vh01 script]# ./calculation.sh
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
echo -n 不换行
echo -e
echo -e "\033[32m OK \033[0m"
echo -e "\033[43m OK \033[0m"
echo -e "\033[1;32m OK \033[0m"
echo -e "\033[43;32m OK \033[0m"
echo -e "\033[32m OK "
echo -e "\033[0m OK "
色块
[root@vh01 script]# vim color.sh
#!/bin/bash
for ((i=1;i<=8;i++))
do
for ((j=1;j<=8;j++))
do
echo -en "\033[43m \033[0m"
echo -en "\033[44m \033[0m"
done
echo
done
while循环
while [ 判断 ]
do
命令
done
i=1
while [ $i -lt 5 ]
do
echo $i
let i++
done
i=1
while :
do
echo "a"
echo "b"
sleep 5
done
脚本:
[root@vh01 script]# vim cat.sh
#!/bin/bash
while :
do
clear
echo '1、查看CPU
2、查看内存
3、查看硬盘
4、查看IP
5、退出'
read -p "请输入1-5:" x
if [ $x -eq 1 ];then
echo "CPU的工作频率如下:"
cat /proc/cpuinfo|grep MHz
read -p "请输入回车继续"
elif [ $x -eq 2 ];then
echo "内存信息如下:"
free |grep "+"
read -p "请输入回车继续"
elif [ $x -eq 3 ];then
echo "硬盘数据如下:"
df -h|grep /boot
read -p "请输入回车继续"
elif [ $x -eq 4 ];then
echo "本机IP是:"
ifconfig eth0 |grep "inet addr"
read -p "请输入回车继续"
elif [ $x -eq 5 ];then
exit
fi
done

浙公网安备 33010602011771号