Linux 下第乙個shell指令碼

2021-09-19 21:06:06 字數 2473 閱讀 5291

shell指令碼可以高效的完成一件事情,和批處理乙個意思。學習寫第乙個shell指令碼。

今天開始寫乙個判斷能否ping通ip的指令碼

1.首先我們看看ping通與不同之間的區別

可以ping通的情況,如下圖所示:

不可以ping通的情況,如下圖所示:

通和不通區別的地方有很多,隨便找乙個不同點就可以判斷其還是不同

2.這裡我們就找上圖標註得到地方作為區別,即如果是不通的情況下,received的數字一定為0,如果通,那received的數字就是非0.

想個辦法過濾出0這個字段

3.有上面辦法就可以寫乙個ping指令碼了.

可以看到我們寫的ping.sh指令碼還沒有可執行許可權。

4.給指令碼檔案可執行許可權

5.測試

注:bash除錯指令碼

[root@localhost ~]# bash -x ping.sh 1.1.1.1

+ ip=1.1.1.1

++ grep received

++ awk ''

++ ping 1.1.1.1 -c 4

+ pre=4

+ '[' 4 == 0 ']'

+ echo 'ping.1.1.1.1.tong le'

ping.1.1.1.1.tong le

[root@localhost ~]#

改進程式:迴圈乙個ip.txt

#!/bin/bash

if [ ! -s ip.txt ]

then

echo "ip.txt file is none"

else

ipnum=`sed -n '$=' ip.txt`

for ((i=1;i<="$ipnum";i++))

doip=`sed -n "$i"p ip.txt`

pre=`ping $ip -c 4 | grep received | awk ''`

if [ $pre == 0 ]

then

echo "$ip down"

else

echo "$ip up"

fidone

fi

30分鐘玩轉Shell 第乙個Shell指令碼

開啟文字編輯器,新建乙個檔案,擴充套件名為sh sh代表shell 副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。輸入一些 bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...

Linux下第乙個簡單的socket程式設計

常用的標頭檔案 sys types.h 資料型別定義 sys socket.h 提供socket函式及資料結構 netinet in.h 定義資料結構sockaddr in arpa inet.h 提供ip位址轉換函式 netdb.h 提供設定及獲取網域名稱的函式 sys ioctl.h 提供對i ...

Windows 下第乙個 GTK 程式

在 這邊說明一下如何在windows作業系統之下撰寫 編譯gtk,gtk使用glib cairo pango atk gtk gettext runtime libpng libjpeg libtiff與zlib,所以您必須也取得這些套件,在gtk官方網站的 windows download 中可以...