shell编程-循环、函数和变量

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.....:第几个参数

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值