1、for循环
1.1循环的格式
for 变量名 in 列表
do
代码
代码
done
循环的逻辑:
·将列表中的每个元素逐一赋值给白亮
·每赋值一次,do和done之间的代码就会执行一次
1.2 列表的生成方式
方法一:直接给出列表元素【用空格分割多个元素】
·2 2 100 haha baidu
方法二:用通配符来生成元素
·/home/a*
方法三:用命令来生成元素
·ls /etc/
方法四:用{}展开的形式生成元素
`{1..10}
案例:输出1-100之间的数字
#!/bin/bash
for num in {1..100}
do
echo $num
done
for num in `seq 1 1 100`
do
echo $num
done
输出IP地址,范围是192.168.95.130-140,并检查有那些主机在线
#!/bin/bash
for num in {130..140}
do
ip=192.168.95.$num
ping -W1 -c1 $ip &>/dev/null
if [ $? -eq 0 ];then
echo "$ip is online"
else
echo "$ip is offline"
fi
done
2、while循环
2.1循环格式
格式1:正常的循环格式
while 条件
do
代码
代码
done
格式2:读取文件格式
while read 变量名
do
代码
代码
done<<文件路径
案例:输出每个用户的用户名和shell类型
while read line
do
name=`echo $line | awk -F ":" '{print $1}'`
shellType=`echo $line | awk -F ":" '{print $7}'`
echo "$name $shellType"
done</etc/passwd
输出1-100之间的数字
num=1
while [ $num -le 100 ]
do
echo $num
num=$[$num+1]
done
每隔5秒检查tom是否登录系统
while true
do
sleep 5
if who | grep "^tom\>" &>/dev/null;then
echo "tom is inline"
exit 5
else
echo "tom is offline"
fi
done
3、循环控制
break:终止循环-直接跳出循环
contiune:立刻终止这次循环,直接开始下一次循环
案例:写九九乘法表
for m in {1..9}
do
for n in {1..9}
do
x=$[$m*$n]
echo -n "$n*$m=$x "
if [ $m -eq $n ];then
break
fi
done
echo
done
4、函数
4.1简介
函数就是一段代码
通过使用函数可以实现代码的复用,降低代码的冗余度,提高开发使用效率
函数格式:
函数名()
{
代码
代码
}
注意:函数无法直接执行,必须要调用才可以执行
调用函数:
函数名
5、变量
5.1类型
环境变量:Linux内置的变量
自定义变量:用户自己定义的变量
位置变量:用于向脚本/函数传递参数
5.2环境变量
一般环境变量都是大写的
PATH:定义搜索命令的路径
USER:当前用户的用户名
HOME:当前用户的家目录
PS1:当前用户的提示符
PS2:当前用户的续航符
SHELL:当前用户的shell类型
UID:当前用户的uid
环境变量配置文件
用户环境变量配置文件
·在用户家目录下: .bashrc .bash_proifle
系统环境变量配置文件
·/etc下:bashrc和profile
5.3位置变量
位置变量,也称为位置参数
作用是用于向函数或者向脚本传递参数的
接收数据的位置变量是:$0 $1 $2 $3 $? $#
$#:参数的个数
$0:脚本名称
$1.....:第几个参数