资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

shel函数与数组怎么用

本篇文章给大家分享的是有关shel函数与数组怎么用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了成都网站建设、成都网站设计,成都网站设计,广告投放平台,成都做网站选创新互联,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。

Shell函数

  • 将命令序列按格式写在一起

  • 可方便重复使用命令序列

  • Shell函数定义

    [ function ] 函数名(){
      命令序列
       [return x]
    }

    使用return或exit可以显示地结束函数(使用return返回状态码,使用echo返回值)
    调用函数的方法:
    函数名 【参数1】【参数2】
    shell函数的运用实例:
    1.两个数字求和
    通过sum () {}定义函数
    使用read命令交互输入两个数并求和

shel函数与数组怎么用shel函数与数组怎么用
2、编写登录系统后便可使用的用户自定义函数
编辑用户自定义函数文件/test/function.sh
在当前Shell中加载可执行的函数文件/test/function.sh
在~/.bashrc文件中添加source /test/function.sh命令

shel函数与数组怎么用

shel函数与数组怎么用
Shell数组

应用场景包括:

  • 获取数组长度

  • 获取元素长度

  • 遍历元素

  • 元素切片

  • 元素替换

  • 元素删除
    数组定义方法

  • 方法1
    数组名=(value0 value1 value2 …)

  • 方法2
    数组名= ([0]=value [1]=value [2]=value …)

  • 方法3
    列表名=“value0 value1 value2 …”
    数组名=($列表名)

  • 方法4
    数组名[0]=“value”
    数组名[1]=“value”
    数组名[2]=“value”

    数组包括的数据类型

  • 数值类型

  • 字符类型
    shell数组的操作
    获取数组长度
    ${数组名[@/*]}

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

    读取某下标赋值
    ${数组名[下标]}

    [root@localhost ~]# aaa=(1 2 3 4 5)
    [root@localhost ~]#bbb=${aaa[1]})
    [root@localhost ~]# echo bbb
    2

    数组遍历

    [root@localhost test]# for ccc in ${aaa[@]}
    > do
    >   echo $ccc
    > done
    1
    2
    3
    4

    随机输入5个数值,输出最大的值

    #!/bin/bash
    for ((i=1;i<=5;i++))
    do
    read -p "请输入$i个数字" num
    abc[$i-1]="$num"
    done
    echo ${abc[*]}
    max=${abc[0]}
    for ((j=1;j<=${#abc[*]}-1;j++))
    do
    if [ ${abc[$j]} -gt $max ]
    then
        max=${abc[$j]}
    fi
    done
    echo "最大值为$max"

    shel函数与数组怎么用

以上就是shel函数与数组怎么用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


当前文章:shel函数与数组怎么用
标题来源:http://cdkjz.cn/article/geciid.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220