shell编程之函数

一、函数

1、将命令序列按格式卸载一起
2、可方便重复使用命令序列
格式:

function 函数名(){ #或 函数(){
命令序列
return/exit 返回状态码 #显示的结束函数 
}

函数调用:可以在脚本的任何位置定义,但必须在函数后调用(先定义在调用)

实例:

1、函数调用函数

#!/bin/bash
holle(){
echo holle
}

world(){
echo world
}

hi(){
echo `holle` `world`
#或echo $(holle) $(world)
}

hi

在这里插入图片描述
2、历遍目录

#!/bin/bash
#递归目录
mulu(){
for file in `ls $1`
do
        if [ -d "$1/$file" ];then
        echo -e "\e[34m"$1$file"\e[0m"
        mulu "$1/$file" "$2"
else
        echo " $2$file"
fi
done
}
mulu "/var/log" " "

在这里插入图片描述
3、阶乘

#!/bin/bash
jiecheng(){
read -p "请输入几的阶乘: " nu
cheng=1
for i in `seq $nu`
do
let cheng=$i*$cheng
done
echo $cheng
}
jiecheng

在这里插入图片描述

二、数组

数组定义办法

第一种:

[root@localhost ~]# a=(1 2 3 4)
[root@localhost ~]# echo ${a[*]}
1 2 3 4

第二种:

[root@localhost ~]# b=([0]=1 [1]=2 [2]=3 [3]=4)
[root@localhost ~]# echo ${b[*]}
1 2 3 4

第三种:

[root@localhost ~]# c="1 2 3 4"
[root@localhost ~]# d=($c)
[root@localhost ~]# echo ${d[*]}
1 2 3 4

第四种:

[root@localhost ~]# e[0]=1
[root@localhost ~]# e[1]=2
[root@localhost ~]# e[2]=3
[root@localhost ~]# e[3]=4
[root@localhost ~]# echo ${e[*]}
1 2 3 4

调用所有元素

[root@localhost ~]# echo ${e[*]}
1 2 3 4
[root@localhost ~]# echo ${e[@]}
1 2 3 4

数组操作

[root@localhost ~]# shuzi=(6 9 3 0 1 5)
[root@localhost ~]# echo ${shuzi[*]}
6 9 3 0 1 5
[root@localhost ~]# echo ${!shuzi[*]}#查看下标或索引
0 1 2 3 4 5
[root@localhost ~]# echo ${#shuzi[*]}#查看数组有几个元素
6
[root@localhost ~]# shuzi[3]=11#修改元素
[root@localhost ~]# echo ${shuzi[*]}
6 9 3 11 1 5
[root@localhost ~]# unset shuzi[3]#取消元素
[root@localhost ~]# echo ${shuzi[*]}
6 9 3 1 5
[root@localhost ~]# echo ${shuzi[*]:1:3}#切取元素片段,从1开始到3
9 3 1

实例:

1、冒泡排序

#!/bin/bash
#冒泡排序

echo "输入你想排序的数字"
read -a shuzu

for ((i=0;i<${#shuzu[*]};i++))
do
        for ((j=0;j<${#shuzu[*]}-1;j++))
do
        if [[ ${shuzu[j]} -gt ${shuzu[j+1]} ]];then
        aaa=${shuzu[j]}
        shuzu[j]=${shuzu[j+1]}
        shuzu[j+1]=$aaa
        fi
done
done
        echo ${shuzu[*]}

在这里插入图片描述
2、将不足60的数字改为60

#!/bin/bash
echo "输入你想输入的数字"
read -a shuzu

for ((i=0;i<${#shuzu[*]};i++))
do
        if [ ${shuzu[i]} -lt 60 ];then
        shuzu[i]=60
        fi
done
        echo ${shuzu[*]}

在这里插入图片描述
3、删除数组中不足60分的元素

#!/bin/bash
#删除数组中不足60分的元素
echo "输入你想输入的数字"
read -a shuzu
a=${#shuzu[*]}
for ((i=0;i<$a;i++))
do
        if [ ${shuzu[$i]} -lt 60 ];then
        unset shuzu[$i]
        fi
done
        echo ${shuzu[*]}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值