-
定义函数
function fname() #关键字 function 可省略 { #函数内容 } -
调用函数
#只需要使用函数名就可以调用某个函数 fname ; -
传递参数
fname arg1 arg2在函数中访问函数参数的方法:
#!/bin/bash echo $0 echo $1, $2 #访问参数1和参数2 echo $@ #以列表的方式一次性打印所有参数 echo $* #类似于$@,但是参数被作为单个实体 echo ---------------------- fname() { echo $1, $2 #访问参数1和参数2 echo $@ #以列表的方式一次性打印所有参数 echo $* #类似于$@,但是参数被作为单个实体 return 0 #返回值 } fname 1 2 3类似地,参数也可以传递给脚本,并通过
$0(脚本名)访问-
$1第一个参数 -
$2第二个参数 -
$n第n个参数 -
$@被扩展成$1 $2 $3等 -
$*被扩展成$1c$2c$3,其中 c 是 IFS 的第一个字符。 -
$@要比$*用得多。由于$*将所有的参数当作单个字符串,因此它很少被使用。
-
-
递归函数
fname() { echo $1 sleep 1 fname $1 #调用自身 } fname helloFork 炸弹
:(){ :|:& };: -
导出函数
函数也能用 export 导出,导出后函数的作用域就可以以扩展到子进程中:
export -f fname -
读取命令返回值(状态)
cmd #执行了一条命令 echo $? #打印上一条命令的返回值(返回值也被称为“退出状态”)。成功为 0,否则为非0 -
向命令传递参数
command [-pv] [-k N] filename上面这条命令有如下几种执行方式:
$ command -p -v -k 1 file$ command -pv -k 1 file$ command -vpk 1 file$ command file -pvk 1
1.12 函数和参数
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。