Linux下的shell編程

來源:互聯網
上載者:User

前提:shell環境pdksh和bash; Ubuntu下預設的shell環境是bash

 

文法篇:

<一>變數

1.變數分為三種類型:環境變數、內部變數和使用者變數;其中環境變數和內部變數不需要使用者定義,可以直接使用。

環境變數:由系統定義,使用者不需要定義但可以改變變數的值。

內部變數:由系統提供的一種特殊類型的變數。這種變數在程式中用來做出判定。在shell程式內這些變數是不能夠修改的。

部分內部變數如下:

$#  傳遞給shell程式的位置參數的數目;

$?   最後命令完成碼或shell程式內所執行的shell程式;

$0   shell程式的名稱;

$*    調用shell程式是所傳送的變元的單字串。 

使用者變數:由使用者定義的,能夠被使用者所修改。

注意:1. 變數是無類型的(若類型的);

         2. 不需要聲明
         3. 賦值 例子 a=10; “=”兩邊不可以有空格

字串賦值有三種,分別是:“=”後直接跟字串;字串加單引號;字串加雙引號。但是有所區別

1. 當字串中有空格出現時,不能採用第一種,必須用第二種或第三種;

2. 加‘’可以阻止shell解析變數

3. 加“”可以解析字串中的所有變數

例如:x=abc def會產生錯誤,正確形式 x='abc def' 或 x="abc def"

 

雙引號

var="test string"

newvar="Value of var is $var"

echo $newvar

輸出結果為: Value of var is test string

 

單引號

var="test string"

newvar='Value of var is $var'

echo $newvar

輸出結果為:Value of var is $var

 

反斜線

在某個字元前利用反斜線可以阻止shell把後面的字元解釋為特殊字元。

test=3

var=$test

echo $var

輸出結果是:3

test=3

var=/$test

echo $var

輸出結果是:test

<二>運算式的比較

在不同的shell中執行邏輯比較的操作符是不同的,在pdksh和bash下,有一個叫做 test 的命令可以用來完成運算式的比較。test命令支援如下四種類型的比較

1. 字串比較

     =            比較兩個字元是否相等

     !=           比較兩個字串是否不相等

     -n           比較字串長度是否大於零

     -z           比較字串長隊是否等於零

2. 數字比較

    -eq          比較兩個數字是否相等

    -ge          比較第一個數是否大於等於第二個數

    -le           比較第一個數是否小於等於第二個數

    -ne          比較兩個數是否不等

    -gt           比較第一個數是否大於第二個數

    -lt            比較第一個數是否小於第二個數

3. 檔案操作比較

    -d           判斷檔案是否是目錄

    -f            判斷檔案是否是普通檔案

    -r           判斷是否對檔案設定了讀許可權

    -s           判斷檔案名稱長隊是否大於0

    -w          判斷檔案是否有寫入權限

    -x           判斷檔案是否有執行許可權

4.  邏輯操作符比較

     !            邏輯非

     -o          邏輯或

     -a          邏輯與

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.