您的位置:首页 > 运维架构 > Shell

Shell函数

2020-07-26 15:23 537 查看

本案例要求编写脚本mycolor.sh,相关要求如下:
• 将颜色输出的功能定义为函数
• 调用函数,可以自定义输出内容和颜色
在Shell脚本中,将一些需重复使用的操作,定义为公共的语句块,即可称为函数。通过使用函数,可以使脚本代码更加简洁,增强易读性,提高Shell脚本的执行效率
1)函数的定义方法
格式1:

1.	function  函数名 {
2.	    命令序列
3.	    .. ..
4.	}

格式2:

1.	函数名() {
2.	    命令序列
3.	    .. ..
4.	}

2)函数的调用
直接使用“函数名”的形式调用,如果该函数能够处理位置参数,则可以使用“函数名 参数1 参数2 … …”的形式调用。
注意:函数的定义语句必须出现在调用之前,否则无法执行。
3) 测试语法格式

1.	[root@dyy ~]# mycd(){                        //定义函数
2.	> mkdir /test
3.	> cd /test
4.	> }
5.	[root@dyy ~]# mycd                            //调用函数
6.
7.	[root@dyy ~]# mycd(){                        //定义函数
8.	> mkdir $1
9.	> cd $1
10.	> }
11.	[root@dyy ~]# mycd  /abc                            //调用函数
12.	[root@dyy ~]# mycd  /360                            //调用函数

步骤一:编写mycolor.sh脚本
1)任务需求及思路分析
用户在执行时提供2个整数参数,这个可以通过位置变量$1、$2读入。
调用函数时,将用户提供的两个参数传递给函数处理。
颜色输出的命令:echo -e “\033[32mOK\033[0m”。
3X为字体颜色,4X为背景颜色。
2)根据实现思路编写脚本文件

1.	[root@dyy ~]# vim mycolor.sh
2.	#!/bin/bash
3.	cecho() {
4.	    echo -e "\033[$1m$2\033[0m"
5.	}
6.	cecho 32 OK
7.	cecho 33 OK
8.	cecho 34 OK
9.	cecho 35 OK
10.
11.	[root@dyy ~]# chmod +x mycolor.sh

3)测试脚本执行效果

1.	[root@dyy ~]# ./mycolor.sh

使用函数,优化改进前面的脚本:

1.	[root@dyy ~]# vim myping.sh
2.	#!/bin/bash
3.	myping(){
4.	    ping -c1 -W1  $1  &>/dev/null
5.	    if [ $? -eq 0 ];then
6.	        echo "$1 is up"
7.	    else
8.	        echo "$1 is down"
9.	    fi
10.	}
11.	for  i  in  {1..254}
12.	do
13.	     myping  192.168.4.$i  &
14.	done
15.	wait
16.	#wait命令的作用是等待所有后台进程都结束才结束脚本。

Shell版本的fork炸弹

1.	[root@dyy ~]# vim test.sh
2.	#!/bin/bash
3.	.(){
4.	.|.&
5.	}
6.	.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: