一文学会Shell中case语句和函数

大家好呀!今天简单聊一聊Shell中的case语句与函数。在多选择情况下使用case语句将非常方便,同时,函数的学习和使用对于学好一门编程语言也是非常重要的。

一、case语句

case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,则执行相匹配的命令。

1)语法结构

case var in             定义变量;var代表是变量名
pattern 1)              模式1;用 | 分割多个模式,相当于or
    command1            需要执行的语句
    ;;                  两个分号代表命令结束
pattern 2)
    command2
    ;;
pattern 3)
    command3
    ;;
		  *)              default,不满足以上模式,默认执行*)下面的语句
    command4
    ;;
esac							esac表示case语句结束

2)eg

eg1:当给程序传入start、stop、reload三个不同参数时分别执行相应命令。

#!/bin/bash
read -p "请输入你要的动作:" action
case $action in
	start|S)
	echo "service is running...."
	;;
	stop|T)
	echo "service is stoped..."
	;;
	reload|R)
	echo "service is restart..."
	;;
	*)
	echo "请输入你要的动作"
	;;
esac

369a851f0af03491cf1e5b53cb679ba4.png

$1:脚本后面的第一个参数。

二、函数

shell中允许将一组命令集合语句形成一段可用代码,这些代码块称为shell函数。

2.1 函数定义

1)基本语法

# 方式1
函数名()
{
  函数体(一堆命令的集合,来实现某个功能)   
}
# 方式2
function 函数名()
{
   函数体(一堆命令的集合,来实现某个功能)  
}

2)eg

创建一个fun1.sh的脚本

vim fun1.sh

在其中定义fun1和fun2两个函数

#!/bin/bash
fun1(){
	echo hello world
	hostname
}
function fun2(){
	A=hello
	# -z判断字符串是否为空
	if [ -z "$A" ];then
		echo "变量为空"
	else
		echo $A
	fi

2.2 函数调用

主要有如下3种函数调用方式

1)在当前终端调用

当前命令行调用,只对当前用户生效

# 先source一下函数的文件
source fun1.sh
# 再调用(直接写函数名)
fun1
fun2

b89733ba3f85eff5fa7a159855fea1dd.png

2)在脚本中调用

在脚本中调用,只对当前脚本生效。

#!/bin/bash
menu(){
cat <<-END
	h	显示命令帮助
	f	显示磁盘分区
	d	显示磁盘挂载
	m	查看内存使用
	u	查看系统负载
	q	退出程序
	END
}
menu		//调用函数
#打印菜单
source ./fun1.sh

0aa1e4d7393e375727f4f88b231ad8bc.png

source:非标准执行方法

3)定义到用户环境变量中

在任何地方都生效(对所有用户生效)

# /etc/profile	/etc/bashrc		~/.bash_profile	  ~/.bashrc
# 在该文件中定义函数
vim /etc/bashrc

2.3 return作用

1)return可以结束一个函数,类似于循环控制语句break(结束当前循环,执行循环体后的代码)

2)return默认返回函数中最后一个命令的退出状态,也可以给定参数值,该参数值的范围是0-256之间

3)如果没有return命令,函数将返回最后一个Shell的退出值

好了,以上就是今天这篇文章的全部内容了。如果你想及时看到我的文章,只需做这几个动作:点星标、点在看(包括赞)、评论、分享,我就会经常出现在您的常读列表,后面更新都会提醒。感谢大家的关注和支持,祝大家生活美满,学业有成,事业蒸蒸日上!

最后,星标设置如下:

e9ab45764aeb32cebca4f0bcbd3e74f3.png

如下即设置成功!

58de505eacd48a94f06d24e16a54fea4.png

往期精彩文章推荐(点击下方蓝字即可阅读!)

往期推荐

2分钟带你掌握Shell中random随机数的使用!

什么是Shell流程控制?如何学习?

2分钟带你快速学会Shell条件判断!

什么是Shell的变量和数组?如何定义与使用?

最受欢迎互联网公司排行榜,速来围观!

什么是Shell?怎么编写和执行Shell脚本?

什么是DNS服务?域名解析的工作原理是什么?


  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农后端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值