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

Linux命令行与shell脚本(13)--在函数中使用普通变量

2017-04-25 13:56 846 查看

基本的脚本函数

创建和使用函数

function fun1(){
echo "This is a function echo";
}
count=1;
while(( count <= 5 ))
do
fun1;  #调用函数
count=$[ $count + 1 ];
done
echo "End";


bash shell会把函数当作小型脚本,运行结束时会返回一个退出状态码。默认情况下,函数的退出状态码是函数中最后一条命令返回的退出状态码。

bash shell使用return命令来退出函数并返回特定的退出状态码

function db1(){
read -p "Enter a value:" value
echo "Doubling the value";
return $[ $value * 2 ];
}

function db2(){
read -p "Enter a value:" value
echo $[ $value * 2 ]
}

db1
echo "The new value is $?"

result=`db2`; #函数返回值赋值给result
echo "The new value is $result";


在函数中使用变量

函数可以使用标准的参数环境变量来代表命令行上传给函数的参数。例如,函数名会在0变量中定义,函数命令行上的任何参数都会通过1,2等定义。也可以用特殊变量#来判断传给函数的参数数目

function addem(){
if (( $# == 0 )) || (( $# > 2 ))
then
echo -1;
elif (( $# == 1 ))
then
echo $[ $1 + $1 ];
else
echo $[ $1 + $2 ];
fi
}

echo -n "Adding 10 and 15:";
value=`addem 10 15`;
echo $value;  #25
echo -n "Let's try adding just on number:";
value=`addem 20`;
echo $value;  #40
echo -n "Now tring adding no number:";
value=`addem`;
echo $value; #-1


使用local关键字在函数中设置局部变量
local temp=$[ $value + 5 ]


函数递归

function factorial(){

local param=$1;
if (( param == 1 ))
then
echo 1
else
local temp=$[ $param - 1 ];
local result=`factorial $temp`;
echo $[ $param * $result ];
fi

}

factorial 5 #120


创建库

使用函数库的关键在于
source
命令,该命令会在当前的shell上下文中执行命令,而不是创建一个新的shell来执行命令,source可以使用快捷方式
. ./myfuncs
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux