bash變量之位置參數變量

    什么是變量

    變量是 bash 環境中非常重要的一個玩意兒,就是讓某一個特定字串代表不固定的內容就是了,講的更簡單一點,我們可以“用一個簡單的 "字眼" 來取代另一個比較復雜或者是容易變動的數據”。


    什么又是位置參數變量

    參數變量實際是屬于系統預定義變量的一種,不能修改變量名,作用也是固定的,也不能新增變量。只能修改變量的值。我們來看看下面常用的位置參數變量。 

    我們知道命令可以帶有選項與參數,例如 ls -la 可以察看包含隱藏文件的所有屬性與權限。那么 shell script 也能在腳本文件名后面帶有參數


    script 是怎么達成這個功能的呢?其實 script 針對參數已經有設置好一些變量名稱了!對應如下:

1.png

    執行的腳本文件名為 $0 這個變量,第一個接的參數就是 $1 ~ 所以,只要我們在 script 里面善用 $1的話,就可以很簡單的立即下達某些指令功能了!除了這些數字的變量之外, 我們還有一些較為特殊的變量可以在 script 內使用來調用這些參數

    $# :代表后接的參數“個數”,以上表為例這里顯示為“ 4 ”;

    $@ :代表“ "$1" "$2" "$3" "$4" ”之意,每個變量是獨立的(用雙引號括起來);

    $* :代表“ "$1c$2c$3c$4" ”,其中 c 為分隔字符,默認為空白鍵, 所以本例中代表“ "$1 $2 $3 $4" ”之意


    $n:n代表數字,$0代表命令本身,$1-$9代表第一到第九個參數,十以上的參數需要用大括號括起來,比如${11}.

    假設我要執行一個可以攜帶參數的 script ,執行該腳本后屏幕會顯示如下的數據:

    程序的文件名為何?

    共有幾個參數?

    若參數的個數小于 2 則告知使用者參數數量太少

    全部的參數內容為何?

    第一個參數為何?

    第二個參數為何

2.png

執行結果如下

3.png

示例2

4.png

執行后結果

5.png

這樣我們就可以把這個腳本拿來當計算機用了,可是只能拿兩個數來相加,因為我們在腳本中只定義了兩個變量,其實也沒必要這么麻煩;

注意:(加#號的行意思為注釋,但是被注釋了的行都會被忽略,除了第一行的shebang),如果需要兩位數以上的加法運算,可以使用let var=算術表達式,下圖依次為腳本中引用變量算法,命令行直接賦值算法

·.png

blob.png

6.png

作業

1編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。

1.png

2、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中

2.png

3、編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利用率最大的值

3.png

4、編寫腳本/root/bin/links.sh,顯示正連接本主機的每個遠程主機的IPv4地址和連接數,并按連接數從大到小排序

4.png

5、寫一個腳本/root/bin/sumid.sh,計算/etc/passwd文件中的第10個用戶和第20用戶的ID之和

5.png

6、寫一個腳本/root/bin/sumspace.sh,傳遞兩個文件路徑作為參數給腳本,計算這兩個文件中所有空白行之和

6.png

7、寫一個腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件

7.png

8,寫一個腳本/root/bin/argsnum.sh,接受一個文件路徑作為參數;如果參數個數小于1,則提示用戶“至少應該給一個參數”,并立即退出;如果參數個數不小于1,則顯示第一個參數所指向的文件中的空白行數

8.png

9、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問”

9.png

10、chmod -rw /tmp/file1,編寫腳本/root/bin/per.sh,判斷當前用戶對/tmp/fiile1文件是否不可讀且不可寫

10.png

11、編寫腳本/root/bin/nologin.sh和login.sh,實現禁止和充許普通用戶登錄系統。

11.png

11.1.png

12、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,先判斷是否合格IP,否,提示IP格式不合法并退出,是,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問”

12.png

13、計算1+2+3+…+100的值

13.png

14、計算從腳本第一參數A開始,到第二個參數B的所有數字的總和,判斷B是否大于A,否提示錯誤并退出,是則計算之

14.png

15。當磁盤利用率大于百分80時 發出警報

15.png

原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/34735

(0)
M20-1馬星M20-1馬星
上一篇 2016-08-15
下一篇 2016-08-15

相關推薦

  • Linux基礎知識之文本處理三劍客sed

    處理文本的工具sed     1.sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”。接著用sed命令處理緩沖區中的內容,完成處理后,把緩沖區中的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。sed主要用來自動編…

    Linux干貨 2016-08-11
  • 自我介紹

    個人簡介     基本信息:     何秋雨,男,安徽人,22歲,初中學歷 工作經驗:     目前就職于南京的一家互聯網公司做Java Web 開發,大概有一年半的工作經驗。工作內容包括前端和Java后端兩個部分。 個人愛好:   &nb…

    Linux干貨 2016-08-08
  • 查找幫助功能、Linux文件系統目錄標準LHS介紹

    查找幫助 命令自帶   COMMAND –help                      COMMAND -h 使用手冊 man COMMAND…

    Linux干貨 2016-10-30
  • linux目錄基礎、簡單的命令以及運用linux幫助

    計算機組成及其功能     計算機其實是:接收用戶輸入指令與數據,經過中央處理器的數據與邏輯單元運算處理后,以產生或存儲成有用的信息。所以計算機組成可以分為輸入單元、輸出單元、CPU(控制單元、算術邏輯單元)、內存     輸入單元:包括鍵盤、鼠標、掃描儀、手寫板、觸摸屏等;實現…

    Linux干貨 2016-09-17
  • Ubuntu 葵花寶典入門篇——要練此功,可能得自宮?

        此文章給初入ubuntu的小伙伴們寫一篇裝機篇和使用心得。第二期會給小伙伴介紹軟件安裝篇。如題目所說,烏班圖確實是葵花寶典,練好了天下無敵。只是如果要安裝UBUNTU系統,只是在虛擬機上跑跑是不夠的,你必須在實際的桌面環境和服務器環境上才能體會到它的運行方式,而桌面環境和服務器環境幾乎差不多。所以安裝桌面版可以更好的理解…

    Linux干貨 2017-03-26
  • DNS簡單概念 一

    DNS簡單概念 一 DNS簡單概念 一 1 §·主機角色 1 §·DNS服務器的類型: 1 §·DNS中簡單術語 2 §·DNS中資源記錄及其類型 2 §·DNS域與區域 4 §·BIND安全設置 5 §·BIND高級設置BIND VIEW 6   §·主機角色 在網絡上不同的主機有不同的角色, 比如: DNS解析角色,郵件角色,網頁服務器 §·D…

    Linux干貨 2016-09-26

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-15 17:15

    總結的很好很詳細。再接再勵

欧美性久久久久