shell函数和数组

shell函数

概述
因为shell是一个解释器,所以它不能对为它编写的程序进行编译,而是在每次从磁盘加载这些程序时对它们进行解释。而程序的加载和解释都是非常耗时的。
shell还以一种内部格式来存放这些函数,这样就不必耗费大量的时间来解释它们,shell函数将命令序列按格式写在一起,可以方便重复使用命令序列。

shell函数格式

//
function name {    ## function 关键字  name 函数名
    statements     ## 命令序列
    [return value] ##
};

$?只会对函数返回的最后一条命令的执行状态做判断,成功就为0,失败就返回一个非0值,可以用到return命令,指定一个整数值来定义函数的退出状态码,可以根据给定的状态码分析函数的执行结果,这个整数值在0-255之间,如果定义return的值超过了255,他返回的就是一个错误的返回值

// 
hello(){
echo nihao
ls xxx
return 20   范围是0-255之间
}

[root@localhost ~]# ./hanshu.sh
nihao
ls: 无法访问xxx: 没有那个文件或目录
[root@localhost ~]# echo $?
20;

递归函数

位置变量

// 
SUM(){
let sum=$1+$2
echo $sum

}
SUM $1 $2

[root@localhost ~]# ./hanshu.sh 1 2
3;
// 
[root@localhost ~]# cat bl.sh 
#!/bin/bash
递归遍历
function bl(){
for i in `ls  $1`
do
if [  -d $1"/"$i ];then
echo -e "\033[34m$1/$i \033[0m"
bl $1"/"$i
else
echo -e  "\e[1;31m   $1/$i\e[0m"
fi

done
}

bl $1

;

数组

定义数组

// 
[root@localhost ]# c=(1 2 3 4 )
或者
[root@localhost ]# c="1 2 3 4"
或者
[root@localhost ]# b=([0]=1 [1]=2 [2]=3 [3]=4);

查看数组中的值

// 
[root@localhost jiaoben]# echo ${c[1]} 	 ##因为下标是从0开始,所以1是第二个数的值
2;

查看数组所有值

//
 [root@localhost jiaoben]# echo ${c[*]}
1 2 3 4 
[root@localhost jiaoben]# echo ${c[@]}
1 2 3 4 ;

查看数组中的个数

// 
[root@localhost jiaoben]# echo ${#c[@]}
5;

查看数组的索引下标

// 
[root@localhost jiaoben]# echo ${!c[@]}
0 1 2 3 4;

查看下标1到3个

// 
[root@localhost jiaoben]# echo ${c[@]:1:3}
1 2 3;
// 
[root@localhost jiaoben]# echo ${c[@]/1/12}
12 2 3 4;
// An highlighted block
var foo = 'bar';
// An highlighted block
var foo = 'bar';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值