目录
函数与数组
一、函数的定义与调用
1.函数的作用
函数可以将一个专门的功能进行封装,用于解决一个特定的问题,并且可以通过传递不同的参数给某个函数,实现处理不同数据的功能。函数的参数跟脚本的参数比较类似。
2.函数的使用
函数名,参数,返回结果,其中函数名是必须的,参数和返回结果可选,根据需要进行处理
示例: #定义一个函数 function add(){ let sum=$1+$2 echo $sum #函数的返回结果,注意,不是使用 return 0 } #调用add函数 #result=`add 100 200` result=$(add 100 200) echo "result的结果为:$result" 在上述示例中,调用函数 add 100 200 时,,类似于命令的参数传递的方式,并且在函数体中也是使用 $1 $2 的取值方式,没有编程意义上所谓的形参和实参一说。
几个关于括号的用法
1.(()) 双圆括号,可以运算,可以代替 expr,也可用于for循环条件((i=1;i<=100;i++)) 2.${} 可以取特定参数或变量的值,比如 ${1},${username} 3.$() 可以代替反引号执行其中的计算命令 4.$[] 用于整数计算,可以代替 expr
#请计算任意数字的阶乘,使用函数来传递参数
检查参数是否是一个目录(注意此处参数的调用) function is_directory(){ if [ id $1 ]; then echo "Greate,$1 is a directory..." else echo "Sorry,$1 is not a firectory..." fi } echo "check if the input is a directory..." is_directory $1 # $1 是运行脚本时给定的参数 echo "check end..."
二、函数与返回值
function myfunc(){ i=$1 j=$2 echo `expr $i \* $j` } result=`myfunc 59 100` if [ $result -lt 6000 ]; then echo "Too Low" else echo "Great" fi
四、数组
其实这里的数组和编程语言中的数组就比较类似了
在Bash宏,可以采用现实的 delare -a variable 语句引入整个数组。 如: declare -a weekday weekday[0]=sunday weekday[1]=Monday ...... 输出数组所有的元素: echo ${weekday[@]} 输出某一个元素: echo ${weekday[1]} 使用 # 号字符求取整个数组有多少个元素 : echo ${#weekday[@]} 或 ${#weekday[*]} 还可以使用 # 号字符求取数组元素长度: echo ${#weekday[0]},结果输出 6