函数
函数定义
(){
.....
}
参数作用域
echo $(uname);
declare num=1000;
uname()
{
echo "test!";
((num++));
return 100;
}
testvar()
{
local num=10;
((num++));
echo $num;
}
uname;
echo $?
echo $num;
testvar;
echo $num;
sh fun.sh
Linux
test!
100
1001
11
1001
函数传参
myecho(){
echo "参数1: $1"
echo "参数1: $1"
}
myecho "test1" "test1"
arr=(1 2 3 4 5)
funcarr(){
res=1
for i in "$@"
do
res = $[$i * $res]
done
echo "$res"
}
result=`funcarr ${arr[@/*]}`
echo "this arr multiply is : $result"
函数返回值
fun1(){
retuen $[ $1 * 2 ]
}
fun1 "3"
echo "fun1 3 return : $?"
eg2:由于eg1的原因故不使用return
fun2(){
echo $[ $1 * 2 ]
}
result=`fun2 400`
echo "return is $result"
arr=(1 2 3 4)
arr2(){
for i in "$@"
do
newarr[n++]=$[ $i * 2 ]
done
echo "${newarr[*]}"
}
result=`arr2 ${arr[*]}`
echo "${result[*]}"