网站运营维护定制开发app到底要多少钱
- Shell编程中的函数:
 - 伪代码表示:
 
function 函数名(){函数体}
 
-  
注意事项:
 -  
1.函数无参数;
 -  
2.函数无返回值类型;
 -  
3.
function可以不写; -  
4.函数不被调用,就不会执行;
 -  
5.函数名不能使用关键字名称,由数字、字母或下划线组成,且数字不能作为函数名的开头;
 -  
函数的调用:
 -  
1.无参数时,直接使用函数名即可;
 -  
2.有参数时,函数名后跟着参数,多个参数用空格分隔;
 -  
函数内部使用的参数:
 -  
需要利用位置变量来使用参数;例如:
 -  
1.
$0:脚本名 -  
2.
$1~$9:调用函数时,给函数传递的第1至第9个参数 -  
十位数及其上:需要添加花括号
{ },比如:${88} -  
示例代码:
 
#!/bin/bashfunction print_string(){for((i=0;i<6;i++))doecho "WELCOME TO BEIJING $i"done}print_stringecho "---------------------------------"function my_mul(){echo $0echo $1echo $2expr $1 \* $2
}my_mul 12 12
 
- 运行结果:
 
WELCOME TO BEIJING 0
WELCOME TO BEIJING 1
WELCOME TO BEIJING 2
WELCOME TO BEIJING 3
WELCOME TO BEIJING 4
WELCOME TO BEIJING 5
---------------------------------
g5.sh
12
12
144
 
- 虚拟机终端传递函数参数:
 - 1.若使用执行脚本的命令行参数,调用函数时,传递参数,如示例代码1所述;
 - 2.如使用命令行的所有参数,如示例代码2所述,可以采用以下
4种方式: - i.
$@:根据单词列表的个数,在终端写多少参数进行传递; - ii.
$*:同上; - iii.
"$@":同上; - iv.
"$*":使用命令行的所有参数,在函数中,使用$1即可; - 示例代码1:
 
#!/bin/bashfunction my_string(){echo "HI zhengzhou $1"echo "HI zhengzhou $2"echo "HI zhengzhou $3"echo "HI zhengzhou $4"echo "HI zhengzhou $5"echo "HI zhengzhou $6"echo "HI zhengzhou $7"echo "HI zhengzhou $8"echo "HI zhengzhou $9"echo "HI zhengzhou ${10}"
}
my_string $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} 
my_string ${10} $9 $8 $7 $6 $5 $4 $3 $2 $1 
 
- 运行结果1:
 
#linux@ubuntu:~$ bash g6.sh 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1
HI zhengzhou 1
HI zhengzhou 2
HI zhengzhou 3
HI zhengzhou 4
HI zhengzhou 5
HI zhengzhou 6
HI zhengzhou 7
HI zhengzhou 8
HI zhengzhou 9
HI zhengzhou 10
HI zhengzhou 10
HI zhengzhou 9
HI zhengzhou 8
HI zhengzhou 7
HI zhengzhou 6
HI zhengzhou 5
HI zhengzhou 4
HI zhengzhou 3
HI zhengzhou 2
HI zhengzhou 1
 
- 示例代码2:
 
#!/bin/bashfunction my_para(){for i in $1 $2 $3 $4 $5doecho $idone
}echo "******************************"
my_para $@
echo "******************************"
my_para $*
echo "******************************"
my_para "$@"
echo "******************************"function my_para1(){for i in $1doecho $idone
}
my_para "$*"
 
- 运行结果2:
 
******************************
11
22
33
44
55
******************************
11
22
33
44
55
******************************
11
22
33
44
55
******************************
11
22
33
44
55
 
- 函数的返回值:
 - 1.Shell编程中所有的变量默认都是
全局的,函数内部的变量在函数调用完成后,是可以直接访问的,除了local关键字修饰的函数内部的变量,其他的变量都可以作为函数运行的结果的方式; - 2.可以使用
return关键字返回; - 3.可以使用命令置换符获取函数的返回值;
 - 示例代码:
 
#!/bin/bashfunction my_mul(){KEY1=$(( $1 * $2 ))}my_mul 12 12
echo $KEY1echo "******************************"
function my_sub(){echo $(( $1 - $2 ))}
function my_mod(){echo $(( $1 % $2 ))}KEY2=$(my_sub 199 100)
echo $KEY2
echo "******************************"
KEY3=`my_mod 100 3`
echo $KEY3
 
- 运行结果:
 
144
******************************
99
******************************
1
 
- 一维数组传递函数参数:
 - 实例要求:
 - 编写脚本,调用自定义函数,传递自定义数组的各个成员的值,并求和;
 - 测试代码:
 
#!/bin/bashSUM=0
function my_Sum(){for i in $1 $2 $3doSUM=$(($SUM+$i))doneecho $SUM}A1=([0]="11" [1]="22" [2]="33")
KEY=$(my_Sum "${A1[@]}")
echo $KEY
 
- 运行结果:
 
66
