Shell腳本(函數,shell中的數組)

函數shell

函數就是把一段代碼整理到一個小單元中,並給這個小單元起一個名字,當用到這段代碼時直接調用這個小單元的名字便可。
vim

格式:function f_name(){數組

          commandbash

          }ide

函數必須放在最前面,函數名能夠本身定義。函數


案例一:url

[root@congji shell]# vim fun.sh spa

#!/bin/bash
orm

function inp() {ip

    echo $1 $2 $3 $10 ${10} ${11} $0 $# [$*]

}

inp 1 2 3 4 5 6 7 8 9 34 55


[root@congji shell]# sh fun.sh 

1 2 3 10 34 55 fun.sh 11 [1 2 3 4 5 6 7 8 9 34 55]


注意$10並不能打印出第10個函數,當n>=10時,用{10}來獲取函數。$0表示腳本名字。$#表示多少個函數。


案例二:

[root@congji shell]# vim fun1.sh


#/bin/bash

sum() {

      s=$[$1+$2]

      echo $s

}

sum 22 2


[root@congji shell]# sh fun1.sh

24




案例三:

寫一個腳本,輸入網卡號則顯示該往卡上的ip。

#/bin/bash

ip() {

              ifconfig |grep -A1 "$1" |tail -1 |awk '{print $2}'

}

read -p "please input the eth name: " e

myip=`ip $e`

echo "$e address is $myip"



運行結果:

[root@congji shell]# sh fun2.sh 

please input the eth name: ens33

ens33 address is 192.168.52.50




Shell中的數組


定義數組:

[root@congji ~]# a=(1 2 3 4 5 6)

查看數組所有值:

[root@congji ~]# echo ${a[@]}

1 2 3 4 5 6

[root@congji ~]# echo ${a[*]}

1 2 3 4 5 6

查看數組單一的值:(從零開始)

[root@congji ~]# echo ${a[0]}

1

[root@congji ~]# echo ${a[1]}

2

[root@congji ~]# echo ${a[2]}

3


給數組賦值或更改:

[root@congji ~]# a[2]=aaa

[root@congji ~]# echo ${a[*]}

1 2 aaa 4 5 6


數組的刪除:

刪除數組裏的一個值:

[root@congji ~]# unset a[1]

[root@congji ~]# echo ${a[*]}

1 aaa 4 5 6

[root@congji ~]# unset a[0]

[root@congji ~]# echo ${a[*]}

aaa 4 5 6


刪除整個數組

[root@congji ~]# unset a

[root@congji ~]# echo ${a[*]}



刪除筆記修改筆記

數組分片:

[root@congji ~]# echo ${b[@]}

1 2 3 4 5 6


格式:echo ${數組名稱[@]:從第幾個元素開始:截取幾個}


從第一個元素開始,截取2個:

[root@congji ~]# echo ${b[@]:0:2}

1 2


從第二個元素開始,截取3個:

[root@congji ~]# echo ${b[@]:1:3}

2 3 4


那麼倒着應該怎麼截取呢:

格式:echo ${數組名稱[@]:0-倒數第幾個元素:截取幾個}


從倒數第2個元素開始,截取2個

[root@congji ~]# echo ${b[@]:0-2:2}

5 6


數組替換

臨時替換:

[root@congji ~]# echo ${b[@]/5/6}

1 2 3 4 6 6

[root@congji ~]# echo ${b[@]}

1 2 3 4 5 6


永久替換:

[root@congji ~]# b=(${b[@]/5/6})

[root@congji ~]# echo ${b[@]}

1 2 3 4 6 6

相關文章
相關標籤/搜索