Shell脚本入门(十) - 函数

Shell脚本里面也可以定义函数,我们这就来学习下函数

1. 注释

在这之前,我们先看下怎样在Shell脚本中添加注释

好吧,貌似只有一种办法,就是 #

加了#的行会被忽略

#!/bin/bash
#####hello
#我是注释
#
##
###
#
echo "哎,当行注释"
######

这里只有单行注释

2. 函数的定义和调用

语法规则:

我们使用 function 来定义一个函数,需要用括号括起来

示例:

function show_menu {
	echo ""
	echo "1.显示所有联系人"
	echo "2.退出"
	echo ""
	echo "请选择:"
}

调用的话,直接使用函数名进行调用

示例:

#!/bin/bash

#function demo
#显示菜单
function show_menu {
	echo ""
	echo "1.显示所有联系人"
	echo "2.退出"
	echo ""
	echo "请选择:"
}

#循环标识,为1时进行循环
let flag=1
while [ ${flag} == 1 ]
do
	#显示菜单信息
	show_menu
	
	#读取输入
	read rs
	case ${rs} in
		1)
			echo "暂无联系人。"
			;;
		2)
			echo "Bye."
			let flag=0
			;;
		*)
			echo "请选择1或者2"
			;;
	esac
done

这里,我们显示个界面,根据用户输入进行判断

3. 函数的参数

这里的函数同样可以传递参数的

我们可以使用 ${1},${2}..来使用

示例:

#!/bin/bash

function logon {
        if [ ${1} == "lufei" ] && [ ${2} == "haha" ]
        then
                echo "登录成功!"
        else
                echo "登录失败!"
        fi
}

let flag=1
while [ ${flag} -eq 1 ]
do
        echo "请输入用户名:"
        read u_name

        echo "请输入密码:"
        read u_password

        logon ${u_name} ${u_password}
done

这里是一个简单的登录验证示例,我们将获取的用户名和密码传递给函数logon去验证

4. 参数个数验证

在这里调用函数的时候很可能参数不够,导致程序出错;我们可以使用$#来获取参数的个数进行判断

#!/bin/bash

function logon {
	#判断参数个数,2个参数就进行信息验证
	if [ $# -eq  2 ]
	then

		if [ ${1} == "lufei" ] && [ ${2} == "haha" ]
		then
			echo "登录成功!"
		else
			echo "登录失败!"
		fi
	else
		#提示错误信息
		echo "参数个数不符"
	fi
}

let flag=1
while [ ${flag} -eq 1 ]
do
	echo "请输入用户名:"
	read u_name

	echo "请输入密码:"
	read u_password
	
	#调用时,只传了一个参数
	logon ${u_name}
done

这个程序,暂时还不能退出,可以使用CTRL+C强制退出


5. 函数返回值

这里的函数,同样也可以有返回值的,return,但是这里的话,返回值必须是0~256之间的一个整数

#!/bin/bash

function test_return {
        echo "please input a number:"
        read  num

        return ${num}
}

test_return
echo "haha,you input: $?"


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值