shell脚本中的函数 shell 中的数组

shell脚本中的函数

函数就是先把一小段代码整理到一个小单元中,并给这个小单元命名,但用到这一小段代码时,直接调用这个小单元的名字即可。

在shell脚本中,函数一定要在最前面,不然就出错。

格式:function f_name(){
command
}
例子:

[root@shuai-01 ~]# vim function.sh

#!/bin/bash
#定义函数
function shu(){
        echo $1 $2 $3 $0 $#
}
#调用函数,并赋予参数
shu 1 a 3
[root@shuai-01 ~]# sh function.sh 
1 a 3 function.sh 3

$0 表示脚本的名字 ,$# 表示有几个参数
当参数大于等于十,用{10}来获取参数

例子:

[root@shuai-01 ~]# vim fun1.sh

#!bin/bash
sum(){
        s=$[$1+$2]
        echo $s
}
sum 22 2

[root@shuai-01 ~]# sh -x fun1.sh 
+ sum 22 2
+ s=24
+ echo 24
24

例子3:显示网卡IP

[root@shuai-01 ~]# vim fun2.sh

#!/bin/bash
ip(){
        ifconfig |grep -A1 "$1: " |tail -1 |awk '{print $2}'
}
 read -p "please input the eth name: " eth

ip $eth


[root@shuai-01 ~]# sh fun2.sh 
please input the eth name: ens33
192.168.176.135
[root@shuai-01 ~]# sh fun2.sh 
please input the eth name: ens37
192.168.248.128

shell中的数组

定义数组:
数组是由小括号阔住。

[root@shuai-01 ~]# a=(1 2 3 4 5 6 )
[root@shuai-01 ~]# a=(`seq 1 6`)

查看数组的全部值

[root@shuai-01 ~]# echo ${a[@]}
1 2 3 4 5 6
[root@shuai-01 ~]# echo ${a[*]}
1 2 3 4 5 6

查看数组的某一个值

[root@shuai-01 ~]# echo ${a[0]}
1
[root@shuai-01 ~]# echo ${a[2]}
3
[root@shuai-01 ~]# echo ${a[5]}
6

给数组赋值:

[root@shuai-01 ~]# a[2]=aaa
[root@shuai-01 ~]# echo ${a[*]}
1 2 aaa 4 5 6

删除数组里的一个值

[root@shuai-01 ~]# unset a[1]
[root@shuai-01 ~]# echo ${a[*]}
1 aaa 4 5 6

删除整个数组:

[root@shuai-01 ~]# unset a
[root@shuai-01 ~]# echo ${a[*]}

从第一个元素开始,截取2个:

[root@shuai-01 ~]# echo ${b[@]:0:2}
1 2

从第二个元素开始,截取3个:

[root@shuai-01 ~]# echo ${b[@]:1:3}
2 3 4

那么倒着应该怎么截取呢:
格式:echo ${数组名称[@]:0-倒数第几个元素:截取几个}

从倒数第2个元素开始,截取2个

[root@shuai-01 ~]# echo ${b[@]:0-2:2}
5 6

数组替换
临时替换:

[root@shuai-01 ~]# echo ${b[@]/5/6}
1 2 3 4 6 6
[root@shuai-01 ~]# echo ${b[@]}
1 2 3 4 5 6

永久替换:
替换后重新赋值数组

[root@shuai-01 ~]# b=(${b[@]/5/6})
[root@shuai-01 ~]# echo ${b[@]}
1 2 3 4 6 6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值