shell函数和数组
函数
定义函数
##第一种:简单常用 函数名(){ 脚本(命令集合) } ##第二种: function 函数名{ 脚本内容(命令集合) } ##第三种 function 函数名(){ 脚本(命令集合) }
函数使用
#!/bin/bash num(){ ##num是定义的函数名称 a=66 echo ${a} } num ##这里的num是调用上面的num函数脚本
关于declare查询的用法
【查看函数列表】 declare -F #查看当前已定义的函数名,仅仅显示名称 declare -f #查看当前已定义的函数定义,包含脚本代码 declare -f 函数名称 #查看该函数是否存在(这里必须是已经用source或者.已经声明过的函数内容,要不然系统无法识别) declare -F 函数名称 #查看当前已定义的函数,以及详细代码 unset 函数名 #表明从系统中删除定义的函数,但是如果函数脚本使用source再次声明,还是会存在的
关于函数的增加与调用
函数返回值
return
return表示退出函数并返回一个退出值,脚本中可以用$?变量表示该值
使用原则:
-
函数一结束就去返回值,应为$?变量只返回执行的最后一条命令的退出返回码
-
退出码必须是0-255,超出的值将为除以256取余
echo
echo任意值。
#!/bin/bash test1 () { read -p "请输入一个数字:" num echo $[$num*2] } result=`test1` echo $result
函数的环境变量和内置变量:local
数组
数组的分类
普通数组(数值型)
下标索引是从0开始的数字,下标数字是可以不连续的
普通数组是系统会自动进行声明的
关联数组(字符型)
要使用declare -A 数据名称进行声明
declare -a 可以查看所有的普通数组;
declare -A 可以查看所有的关联数组 ;
找出数组中的最大和最小值
#!/bin/bash for i in {0..6} do num[$i]=$[RANDOM%10] [[ $i -eq 0 ]] && min=${num[0]} && max=${mun[0]} ##当有第一个数组时,最大值和最小都是它 [[ ${num[$i]} -gt max ]] && max=${num[$i]} ##表示随机产生的数字与最大值比较,如果大成立,则执行将其值赋给max [[ ${num[$i]} -lt min ]] && min=${num[$i]} done echo "所有随机数为:${num[*]}" echo "最大值为:${max}" echo "最小值为:${min}"