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