博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell实战之函数的高级用法
阅读量:6207 次
发布时间:2019-06-21

本文共 1392 字,大约阅读时间需要 4 分钟。

函数定义和使用

#!/bin/bash#实时监控nginx进程的状态this_pid=$$while true    do    ps -ef | grep nginx | grep -v grep | grep -v $this_pid &> /dev/null        if [ $? -eq 0 ];then    	echo "Nginx is running well"    	sleep 3    else    	systemctl start nginx    	echo "Nginx is down,Start it...."    fi    done复制代码

向函数传递参数

#!/bin/bash#计算器function calcu{	case $2 in		+)			echo "`expr $1 + $3`"			;;		-)			echo "`expr $1 - $3`"			;;		\*)			echo "`expr $1 \* $3`"			;;		/)			echo "`expr $1 / $3`"			;;	esac}calcu $1 $2 $3复制代码

函数返回值

#!/bin/bash#this_pid=$$function is_nginx_running{	ps -ef | grep nginx | grep -v grep | grep -v $this_pid &> /dev/null	if [ $? -eq 0 ];then		return	else		return 1	fi}is_nginx_running && echo "Nginx is running" || echo "Nginx is stoped"复制代码
#!/bin/bash#function get_users{	users=`cat /etc/passwd | cut -d: -f1`	echo $users}user_list=`get_users`index=1for u in $user_listdo	echo "The $index user is : $u"	index=$(($index+1))done复制代码

局部变量和全局变量

#!/bin/bash#var1="Hello world"function test{	local var2=87}testecho $var1echo $var2复制代码

函数库

#!/bin/bash#. /root/lesson/3.5/lib/base_functionadd 12 23reduce 90 30multiple 12 12divide 12 2复制代码
function add{	echo "`expr $1 + $2`"}function reduce{	echo "`expr $1 - $2`"}function multiple{	echo "`expr $1 \* $2`"}function divide{	echo "`expr $1 / $2`"}function sys_load{	echo "Memory Info"	echo	free -m	echo		echo "Disk Usage"	echo	df -h	echo}复制代码

转载地址:http://hrhca.baihongyu.com/

你可能感兴趣的文章
VMM2012应用指南之12- 创建自助服务用户并分配云
查看>>
dataguru北京线下沙龙-第二部 《Oracle 索引优化思路--案例分享 -- 刘盛》
查看>>
关于Go语言在服务端做Restful接口和socket通信
查看>>
Snapchat, 给年轻人要的安全感
查看>>
高计能计算要实现软着陆
查看>>
程序集、应用程序配置及App.config和YourSoft.exe.config .
查看>>
【qt】QT 的信号与槽机制
查看>>
servlet乱码 解决方法 2种方法
查看>>
.balignl 16,0xdeadbeef浅析
查看>>
Android处理ListView中的Item中的Button按钮不能点击的问题
查看>>
翻译词典推荐
查看>>
DEFINE_PER_CPU
查看>>
[C#]Attribute特性(3)——AttributeUsage特性和特性标识符
查看>>
Oracle分页存储过程
查看>>
Fast Image Cache – iOS 应用程序高性能图片缓存
查看>>
C#实现简单的 Ping 的功能,用于测试网络是否已经联通
查看>>
开源项目 配置管理软件推荐
查看>>
CentOS6.7-64bit编译hadoop2.6.4
查看>>
IntelliJ IDEA2017 修改缓存文件的路径
查看>>
无向图的点双连通分量(tarjan模板)
查看>>