在編寫shell腳本的時候,難免會使用shell腳本的字符串拼接,不經常使用的話真的會忘記。本人寫着一篇的目的也就是記錄以下,到時候回過頭來不用找的太麻煩。
首先變量與變量拼接
str1="123" str2="456" echo $str1$str2
結果輸出123456
其次字符串與變量拼接
str3="789" echo $str3"000"
輸出結果789000
另外一種變量與字符串拼接方式
echo "${str3}000"
輸出結果789000
再其次字符串與字符串的拼接
echo "111""222"
輸出結果111222
再其次linux命令與字符串拼接
echo "[`date` ]"
這里使用linux 的date日期命令
輸出結果為[Tue May 26 16:03:36 CST 2020 ]
再其次linux命令與變量拼接
echo `date`$str1
輸出結果為:Tue May 26 16:05:54 CST 2020123
最后命令與命令的拼接
echo `date``ls`
輸出結果為:Tue May 26 16:07:36 CST 2020auto.sh logs logsetting.sh logtar.sh lua luajit openResty.conf shelltest.sh src
以上借本包括了所有的shell腳本的字符串拼接,希望對自己和大家都有用。最后附上整體腳本和輸出結果截圖
#字符串與字符串的拼接 str1="123" str2="456" echo $str1$str2 #變量和字符串拼接 str3="789" echo $str3"000" echo "${str3}000" #字符串與字符串 echo "111""222" #字符串與命令 echo "[`date` ]" #命令與變量 echo `date`$str1 #命令與命令 echo `date``ls`
進程的健康檢查腳本如下:
1 ps -A -ostat,ppid,pid,cmd |grep -e '^[Z]' | grep -e $PID_NAME | while read line 2 do 3 for col in $line; do 4 if [[ $col == $PID_NAME":" ]]; then 5 echo "equal nginx" $father_pid 6 #kill -9 $father_pid 7 #kill -HUP $father_pid 8 fi 9 father_pid=$col 10 done 11 echo $line 12 done
說明:
PID_NAME 待過濾的進程名字,這里我哦過濾nginx
執行效果如圖所示: