函数调用
在Shell程序中,常常把完成固定功能、且多次使用的一组命令(语句)封装在一个函数里,每当要使用该功能时只需调用该函数名即可。实际上,在Shell编程中,函数被看成“许多Shell命令整合成一个大的Shell命令”。
函数在调用前必须先定义,且在顺序上必须放在调用函数前面。
调用函数时可以使用参数传递,函数内使用return命令将运行结果返回给调用程序。
函数只在当前Shell中起作用,不能输出到子Shell中。
1、函数定义
函数定义的格式为:
格式1:
function_name(){
命令
……
}
格式2:
function function_name(){
命令
……
}
2、函数调用
1)无参数无返回值
若调用的函数无需返回值也无需传参,则像普通命令一样即可
示例:写一个打印hello world的子函数并调用
#!/bin/bash
hello(){
echo"hello world"
}
hello #调用函数
2)有参数有返回值
若函数需要传递参数,也需要得到返回值,则有两种调用方式:
方式1:
value=`function_name $arg1 $arg2……`
方式2:
function_name $arg1 $arg2……
echo $?
示例:判断某个用户是否登录
#!/bin/bash
check_user(){
user=`who| grep $1 | wc -l`
if[ $user -eq 0 ]
then
return0
else
return1
fi
}
while true
do
echo"Input a username"
readUSER
check_user$USER
if[ $? -eq 0 ]
then
echo"THE USER OFFLINE"
else
echo"THE USER ONLINE"
fi
done