shell腳本編程之變量

一、創建shell腳本文件

  創建shell腳本時,必須在第一行指定要使用的shell。格式為:

  #!/bin/bash

  通常在shell腳本中,#代表注釋行,即不被執行的行,而第一行“#!”則是表示用哪個shell來執行腳本。

  實例:

1.jpg

  讓我們來執行一下這個腳本:

2.jpg

  上面的結果顯示無法找到此命令,其原因是shell對于命令的查找是通過PATH變量來進行的,如下圖所示,而新建的腳本的目錄并不在PATH變量中,解決方法:

  1、將shell腳本的目錄添加到PATH變量中;

  2、將腳本復制到PATH變量中存在的目錄中;

  3、使用絕對或相對路徑來執行腳本。

3.jpg

  我們使用第三個方法來執行腳本:

4.jpg

  結果又出現了報錯,提示沒有權限;如果需要運行腳本的話,此腳本必須擁有執行權限,而從下圖可以看到,此文件沒有任何的執行權限:

5.jpg

  添加執行權限后再次執行腳本:

6.jpg

  上面的結果中顯示腳本成功運行。

二、變量

  變量的類型包括:環境變量、本地變量(局部變量)、位置變量、特殊變量。

  1、環境變量

    可以使用set命令來查看當前活運的環境變量。

    在腳本中引用環境變量時要在變量名稱前加一個“$”符號。

7.jpg

  2、本地變量

    即本地變量,其命名規則如下:

     (1)只能包含字母語、數字和下劃線,并且不能以數字開頭

     (2)不應該跟系統中已有的環境變量重名

     (3)最好做到見名知義

7.jpg

    上面的例子中將兩個變量分別賦值后進行計算,并輸出計算的結果。

  3、位置變量

           $#:#為數字,表示參數的位置;如:$1表示腳本執行時所帶的第一個參數。

5.jpg

           如上例所示,腳本執行時帶了兩個參數9和10,分別對應$1和$2兩個變量,而$0對應的./test4,即命令本身。

           shift n命令可以對參數進行位移,使后面的位置變量向前移動n個位置,如果不帶具體的數字默認為1。

6.jpg

  4、特殊變量

    $?:用于顯示命令執行后返回的狀態碼,命令執行成功則返回1,否則為其它值;

8.jpg

          $#:命令執行時所帶的參數的個數;

9.jpg

          $*:參數列表,將所有參數當做一個參數,而不是多個對象;

          $@:參數列表,將所有參數當做多個獨立的對象。

10.jpg

            上例中的結果兩個變量并沒有什么區別,得到的結果是相同的。

            下面的例子可以看出兩個變量的不同之處:

11.jpg

三、測試腳本

  腳本執行時出現錯誤時,可以使用bash命令協助進行錯誤排除,其命令格式如下:

   bash [options] script

   常用的選項:

     -n:檢查腳本的語法錯誤,且只顯示語法出錯的內容;

     -x:檢查腳本的語法錯誤,且顯示腳本執行的每一步內容。

1.jpg

 

原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/10658

(0)
petmasterpetmaster
上一篇 2016-02-14
下一篇 2016-02-14

相關推薦

  • 淺談群紅包的實現

    前言:紅包是支付的方式, 也是社交的延伸。群紅包在這兩塊領域串聯得很好, 表現尤為的濃墨重彩. 承接上兩篇技術淺談:1). 淺談接龍紅包的技術實現.2). 淺談微信紅包搖一搖的技術實現.這一次, 讓我們談談群紅包的技術實現. 一為是紅包的分配算法, 二為競搶的技術實現. 分配算法:最初玩群紅包的時候, 并沒有意識到分配算法的難度…

    Linux干貨 2015-03-10
  • Linux進程及作業管理總結

    一、簡介     在使用Windows操作系統中很多時候需要查看某些程序進程的運行情況,一般來說我們可以打開Windows提供的"任務管理器",然后點擊"進程"欄即可查看到當前系統運行的進程列表。例如偶爾出現系統內存、CPU占用過高的時候,我們往往都會查看進程列表,并找到當前占用內存或CPU過高的進…

    Linux干貨 2015-10-05
  • 一周作業體會

    1、描述計算機的組成及其功能 CPU+控制器+RAM+輸入設備+輸出設備 2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別 答:最主流的發行版主要有: Debian/Slackware/Redhat,我們日常最常使用的操作系統大多是上述發行版的二次再發行版,例如:基于Debian的二次發行版Ubuntu和Knopix,基于Slac…

    Linux干貨 2016-10-31
  • linux文件基本權限、默認權限、隱藏權限和ACL權限

    基本權限    文件屬性rwx     每個文件當用ls -l查看時,都會顯示文件的詳細屬性信息,其中在排在首位的共有10位字符信息     例如 -rw-r–rw-. 1 root root …….. 共有10位,第一位代表的是文件的類型,后邊9位表示的是文件的…

    Linux干貨 2016-08-04
  • 文件管理相關

     rename:對文件重命名     rename [options] expression replacement file        示例:          # rename -v cut.exe cut.exe3 cut.exe…

    Linux干貨 2017-02-25
欧美性久久久久