linux Shell學習筆記最後一節,溫故與知新

來源:互聯網
上載者:User

指令碼編寫技巧

指令檔名命名規則

檔案名稱的字元包括

字母、數字、"."、"_"和"-", 注意:指令碼的檔案名稱命名不能以數字開頭。

指令檔名的命名,盡量使用英文單詞、片語或短句的縮寫。

指令碼版本管理:

指令碼作用.主要版本號.修改次數.shell類型

變數命名規範

變數名可以由數字和字母組成

變數名採用全部英文字元小寫方式

變數名稱盡量使用縮寫,最好不要超過6個字元

${變數名} 例:${port},${ipaddr}…

指令碼代碼注釋規範

指令碼代碼注釋可以使用"#"和";(分號)"兩種方式進行注釋。#一般由於描述性的注釋,旨在說明代碼的作用或怎麼使用。

而;通常用於樣本性的注釋,特別是在一些設定檔中常常會用到,因此我們沿用這兩種方式來對我們的指令碼進行注釋。

引用符號使用規範

盡量少用單引號

對極個特殊字元進行屏蔽特殊含義時,使用\(反斜線)進行屏蔽

使用帶引號進行屏蔽字元時,單引號內一般不適用其他引用符號,除非是列印特殊符號本身。

使用反引號進行執行一個shell命令時,反引號內一般加其他引用符號。

指令碼函數定義規範

變數名可以由數字和字母組成

使用駝峰命名法(從第二個單詞開始,每個單字首大寫)

名字盡量不使用縮寫,除非它是眾所周知的

名字可以有兩個或三個單片語成,但通常不應多於三個

文本輸出排版

第一天課後作業

1、grep "20081011" text.txt 取出這一天的資料

2、grep "200804" text.txt 取出這一個月的資料

3、grep "200806" text.txt | grep -v "-" 取出一個月的上漲資料

4、grep "200807" text.txt | grep -v "-" | wc -l 列出有幾天是上漲個數,帶統計

5、grep "200808" text.txt | sort -k5 -n | tail -1 判斷上漲,然後tail取最後一行

grep "200808" text.txt | sort -k5 -r |head -1 判斷上漲,然後head取第一行

6、grep "200810" text.txt | awk '{if($4>0){print $1,$5}}' 取出一月中上漲資料時間和上漲幅

7、grep "200811" text.txt | awk '{if($4>5 && $4<20){print $0}}' 判斷區間取出整行

指令碼代碼執行個體分析1

編寫一個shell指令碼,執行指令碼後自動ping以下地址:

192.168.1.1,192.168.1.31

以上IP地址直接寫在指令碼之中。執行完成後,

應顯示能夠ping通的IP地址和不能夠ping通的IP地址

#!/bin/bash

if ping 192.168.1.1 -c 1

then

echo "192.168.1.1 online"

else

echo "192.168.1.1 offline"

fi

if ping 192.168.1.31 -c 1

then

echo "192.168.1.31 online"

else

echo "192.168.1.31 offline"

fi

指令碼代碼執行個體分析2

修改分析1,但是從iplist.txt中讀取IP

#!/bin/bash

for ip in `cat iplist.txt`

do

if ping $ip -c 1

then

echo "${ip} online"

else

echo "${ip} offline"

fi

done

指令碼代碼執行個體分析3

修改分析2,去除無用的資訊

#!/bin/bash

for ip in `cat iplist.txt`

do

if ping $ip -c 1 >/dev/null 2>&1

then

echo "${ip} online"

else

echo "${ip} offline"

fi

done

指令碼代碼執行個體分析4

修改分析3,產生記錄

#!/bin/bash

>hoststatus.txt

for ip in `cat iplist.txt`

do

if ping $ip -c 1 >/dev/null 2>&1

then

echo "${ip} online" |tee -a hoststatus.txt

else

echo "${ip} offline" |tee -a hoststatus.txt

fi

done

指令碼代碼執行個體分析5

產生一個IP位址集區,產生255個IP,並修改分析4,實現多線程ping

#!/bin/bash

>iplist

for ip in `seq 1 255`

do

echo "192.168.1.${ip}" >>iplist

done

#!/bin/bash

>hoststatus.txt

>temp

fastping()

{

if ping ${1} -c 1 >/dev/null 2>&1

then

echo "${ip} online" |tee -a temp

else

echo "${ip} offline" |tee -a temp

fi

}

for ip in `cat iplist.txt`

do

fastping $ip &

done

wait

sort -t. -k4 -n temp >hoststatus.txt

rm temp

temp ./ping.sh 測試一個指令碼執行多久

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.