到国外做网站网站是怎么回事,福州定制网站建设,网站定位广告,深圳网站推广排名为什么80%的码农都做不了架构师#xff1f; 一. 函数定义 语法#xff1a; [function] functionname[()]{action;[return int;]
} 说明#xff1a; 1、可以带function fun() 定义#xff0c;也可以直接fun() 定义,不带任何参数。 2、参数返回#xff0c;可… 为什么80%的码农都做不了架构师 一. 函数定义 语法 [function] functionname[()]{action;[return int;]
} 说明 1、可以带function fun() 定义也可以直接fun() 定义,不带任何参数。 2、参数返回可以显示加return 返回如果不加将以最后一条命令运行结果作为返回值。 return后跟数值n(0-255 #/bin/shbuild(){echo $1, $2;return $(($1$2))
}
build 5 7;total$(build 3 2);echo $totle, $? 从上面这个例子我们可以得到几点结论 1、必须在调用函数地方之前声明函数shell脚本是逐行运行。不会像其它语言一样先预编译。一次必须在使用函数前先声明函数。 2、total$(fSum 3 2); 通过这种调用方法我们清楚知道在shell 中 单括号里面可以是命令语句。 因此我们可以将shell中函数看作是定义一个新的命令它是命令因此 各个输入参数直接用 空格分隔。 一次命令里面获得参数方法可以通过$0…$n得到。 $0代表函数本身。 3、函数返回值只能通过$? 系统变量获得直接通过,获得是空值。其实我们按照上面一条理解知道函数是一个命令在shell获得命令返回值都需要通过$?获得。 二. 函数作用域 #!/bin/shecho $(uname);
declare num1000;uname()
{echo test!;((num));return 100;
}
testvar()
{local num10;((num));echo $num;}uname;
echo $?
echo $num;
testvar;
echo $num;sh testfun2.sh
Linux
test!
100
1001
11
1001 我们一起来分析下上面这个实例可以得到如下结论 1、定义函数可以与系统命令相同说明shell搜索命令时候首先会在当前的shell文件定义好的地方查找找到直接执行。 2、需要获得函数值通过$?获得 3、如果需要传出其它类型函数值可以在函数调用之前定义变量这个就是全局变量。在函数内部就可以直接修改然后在执行函数就可以读出修改过的值。 4、如果需要定义自己变量可以在函数中定义local 变量值 这时变量就是内部变量它的修改不会影响函数外部相同变量的值 。 转载于:https://my.oschina.net/uabao/blog/498901