1. 程式人生 > >Shell.001 基礎使用(一)

Shell.001 基礎使用(一)

寫在前面:只接觸過一點點shell,這次修改指令碼都是一點點百度,下面記錄下重點內容。

=======================================================================================

1  $的使用

        $$  指當前程序ID號

        $?  表示上一條命令的執行結果,0則為上一條命令執行成功,1則為失敗。經常用其作為if、while等語句的判斷條件,

              如while  [ $? -ne 0 ] ,-ne為不等於。

        $1,$2  表示傳入/呼叫的第一個引數,第二個引數

        $VALUE  呼叫引數

2  函式的定義與呼叫

#獲取網絡卡上ipv6地址的cidr

#定義函式getcidr

getcidr(){     local dev=$1     local cidr6size=`ip addr show $dev|grep inet6|head -n 1|awk '{print $2}'|cut -d '/' -f 2`     local ip6addr=`ip addr show $dev|grep inet6|head -n 1|awk '{print $2}'|cut -d '/' -f 1`     echo $ip6addr/$cidr6size }

#呼叫函式,$1指的就是$dev,即呼叫該函式時傳入的第一個引數

getcidr $dev

3  利用其他指令碼生成函式快取,並呼叫快取函式

vim bak.sh

getcidr(){     local dev=$1     local cidr6size=`ip addr show $dev|grep inet6|head -n 1|awk '{print $2}'|cut -d '/' -f 2`     local ip6addr=`ip addr show $dev|grep inet6|head -n 1|awk '{print $2}'|cut -d '/' -f 1`     echo $ip6addr/$cidr6size }

vim use.sh

source /root/bak.sh

ipv6_cidr=$(getcidr)

4  if的使用

1)if [ $2 ]                                                                //$2是否為0,為0則執行then,否則執行else

    Then

        time=$2

    else

        time=30

    fi

2)if [ ! -e $FILE ]                                                                    //$FILE是否不存在,不存在則執行then

    then

        echo 0

        return

    fi

3)if [ "$str" == "1" ]                                                          //$str是否是1,是則刪除$FILE

    then

        rm $FILE

    fi

}

4)if [ $num -eq 1 ]                                                          //$num是否等於1,等於則刪除$FILE

    then

        rm $FILE

    fi

}

5) if [ -n $addr ]                                                                            //如果$addr存在,則執行then語句

then

    ip addr show|grep $addr

fi