shell 函数
目录
shell 函数
shell 函数参数
shell 函数
shell 函数语法:
[ function ] funname [()] { do something; [return int;] }
note:
1) function 可有可无.
2)return 可有可无,没有默认返回最后一条命令的结果。return后跟数值(0-255).
3)函数返回值,在调用函数后,使用$?来获取
shell 函数调用:
函数名即可。
shell 函数参数:
shell函数可以接受参数,函数内部用$n获取参数的值,外部参数通过空格隔开
#/bin/bash demoFun(){ echo "file name: $0" echo "The first parameter: $1" echo "secondly: $2" echo "ten: $10" echo "ten: ${10}" echo "*: $*" echo "@: $@" echo "#参数的个数: $#" return 1 } demoFun 1 2 3 4 5 6 7 8 9 22 33 echo $?
结果:
file name: ./test.sh The first parameter: 1 secondly: 2 ten: 10 ten: 22 *: 1 2 3 4 5 6 7 8 9 22 33 @: 1 2 3 4 5 6 7 8 9 22 33 #参数的个数: 11 1
note:
当获取的参数大于等于10的时候,要用${n}来获取参数的值.
说明:
$0: 文件的名字
$#: 传递给函数或脚本的个数
$@:与$*相同,但是使用时加引号,并在引号中返回每个参数。
$*: 以一个单字符串显示所有向脚本传递的参数
$@和$*的区别:
相同点:
当 $* 和 $@ 不被双引号" "
包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔。
不同点:
但是当它们被双引号" "
包含时,就会有区别了:
"$*"
会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。
"$@"
仍然将每个参数都看作一份数据,彼此之间是独立的。