第一個shell腳本

編程語言 腳本語言 文本編輯器 Bash 雲中牧歌 2017-04-11

工作太忙了,所以一直沒有更新,今天來看看最簡單的shell腳本的入門的知識,什麼是shell script呢?其實就是利用shell的功能所寫的一個程序,這個程序是使用純文本文件,將一些shell的語法與命令寫在裡面,搭配有正則表達式、管道命令與數據流重定向等功能,以達到我們所想要的處理的目的。簡單來說可以看成批處理文件,或者是一個程序語言而這個程序語言都是利用shell與相關工具命令,所以不需要編譯就可以執行,同時擁有不錯的排錯(debug)工具。


一、shell腳本編寫的注意事項:

1.命令的執行是從上而下、從左到右地執行的

2.命令執行時命令、參數間的多個空白都是會被忽略掉的

3.空白行也將會被忽略掉,並且【tab】按鍵所形成的空白同樣視為空格鍵

4.如果遇到一個回車鍵[Enter]符號,就會開始執行改行(或者改串)命令

5.如果一行內容太多可以使用"\[Enter]"符號來擴展到下一行

6.#號是作為批註,在#號後面的內容全部被當作批註文字而被忽略


二、shell腳本執行的方式

假設當前shell腳本的位置是/home/yunzhongmuge/shellscript-practice/first.sh

1.直接命令執行

這種方式執行的時候,shell腳本需要擁有可讀(r)與可執行(x)的權限,這個也分三種情況,如下:

a.絕對路徑:使用/home/yunzhongmuge/shellscript-practice/first.sh來執行

b.相對路徑:如果在shell腳本的所在目錄,則./first.sh來執行

c.利用PATH變量:將first.sh這個腳本放到PATH這個環境變量裡面。

2.使用bash進程來執行:這時不需要考慮shell腳本是否具有可讀與可執行的權限,直接bash first.sh執行即可。


三、編寫shell腳本的良好習慣

一個優秀的程序猿總會注意養成一個好的編碼規範習慣,同樣編寫shell腳本也是需要一個良好的習慣,這些習慣大概有如下幾個點:

1.shell腳本文件頭裡面記錄好,這個腳本的功能、版本信息、編寫者姓名與聯繫方式、版權聲明方式、歷史記錄等

2.自行定義好一些需要用到的環境變量,畢竟每個人的環境變量都不一樣,為了取得較好的執行環境,最好設置好對應的環境變量,如PATH變量。

3.腳本當中比較重要的地方添加上相應的備註,可以幫助自己或者閱讀你腳本的人理解。

4.程序編寫最好使用嵌套方式,最好能使用【tab】鍵的空格縮進,這樣代碼看起來非常有條理性。

5.進行編寫是最好使用vim而不是vi,因為vim有額外的語法校驗機制,能夠在編寫的第一時間內發現語法方面的問題。


四、例子

1.編寫第一個shell腳本

在程序猿的圈子裡有很多梗,第一個接觸到的應該就是hello world了,我記得當時我開通微博的時候發表的第一條微博就是hello world!所以這裡的第一個腳本就從hello world開始,如下:

第一個shell腳本

first.sh

這裡稍微解釋一下,第一行#!/bin/bash這個是聲明本腳本使用的shell的名稱,然後第二第三行說明這個腳本的功能,第四第五行是這個腳本的歷史記錄與作者的聯繫方式等,這裡顯示一個hello world這個字符串我們使用了一個函數,函數的功能就相對比較多了,後面如果想擴展也好擴展。

然後我們添加可以執行的權限,採用的是相對路徑的執行方式,如下圖:

第一個shell腳本

print hello world!

這樣我們就通過腳本將hello world這個字符串輸出來了,是不是很簡單呢!下面我們來一個實用點腳本。

2.實戰類型的腳本

在很多時候我們如果進行多服務器維護過程中,會進行判斷所獲取到的服務器的IP是否是合法的地址,這時我們就需要寫一個腳本進行判斷一下,如下:

第一個shell腳本

checkIP.sh

同樣的這裡定義個檢查IP的一個函數,然後使用輸入的IP的進行判斷IP是否合法,這時我們對該腳本添加可執行權限,然後執行一下,驗證一下其功能,如下圖:

第一個shell腳本

check

從上面的輸出我們可以看到我們這個腳本的功能是達到了,但輸入的IP不合法是能夠顯示出來,當然我們在實際操作的時候就不是讓它輸出來,可以讓它返回一個0或者1作為標誌位,這樣我們就可以根據這個值做相應的操作。好了本次分享到此結束,good luck!


May you share freely, never taking more than you give.

親,關注、評論、點贊、收藏、轉發一下唄!謝謝!


相關推薦

推薦中...