Bash shell指令碼備忘

來源:互聯網
上載者:User

shell在linux中是很常用的一種解釋類型的指令碼,包含很多類型,使用範圍較廣的為bashshell ,在讀android原始碼中shell檔案隨處可見,故對此作一備忘(詳解shell都可以單獨出書了),將一些常用符號和文法記錄如下,方便尋找

1.一個簡單的shell指令碼如下

#!/bin/bash

echo "Hello shell"

備忘:

1).shell指令碼在頂部必須添加#!/bin/bash,來指定所使用的shell類型

2)shell指令碼副檔名.sh 可有可無,習慣添加,用於區別檔案類型

3)執行可以這樣輸入:

$. a.sh

或者

$sh a.sh

2.Bash指令碼中常用的符號

1)特殊符號

符號

使用說明

注釋符#

注釋說明

雙引號""

引號內的所有字元全部變為一般字元,除 反斜線\ 倒引號`` 美元符$

單引號''

將引號內所有字元全部變為一般字元

倒引號``

引號內部分當作shell解釋執行

反斜線\

逸出字元,將特殊字元變為一般字元

美元符$

引用變數的值

2)檔案測試符號

符號

使用說明

-f

檔案存在且普通檔案

-d

檔案夾存在

-x

檔案存在且可執行

-w

檔案存在且可寫

-r

檔案存在且可讀

-s

檔案存在且位元組大於0

-n

運算元長度不為0

-z

運算元長度為0

-a

邏輯與

-o

邏輯或

!

邏輯非

3)比較子

符號

使用說明

-eq

為整數,相等(只可用於比較整數,不能比較字串相等)  

-neq

為整數,不相等

=

為字串,相等

!=

為字串,不相等

-lt

為整數,小於

-gt

為整數,大於

-le

為整數,小於等於

-ge

為整數,大於等於

4)內建符號

符號

使用說明

$@

代表全部參數

$#

參數的個數

$?

上一個命令返回的結果

$$

當前命令所在的進程號

$n

代表輸入的第n個參數

$0

Shell程式的名稱

3.條件判斷

#!/bin/bash

if [ "$1" = "normal" ]

then

echo "this is normal"

elif [ "$"2 = "active" ]

then

echo "this is active"

fi

備忘:

1)在"["與"$1"之間必須添加空格,"["是一種運算子號,故需與後邊參數空格隔開

2)if之後必須添加then

3)結束用fi

4.while [] do...done

備忘:

1)使用時注意"["代表含義

2)結束用done

5.case esac選擇語句

#!/bin/bash

case $1 in

1)

echo "選擇了1"

;;

2)

echo "選擇了2"

;;

esac

備忘:

1)in也是linux命令,不可丟失

2)每個case分支結束用;;

3)case結束用esac

4)break可以跳出,不執行後邊的分支

6.for迴圈

#!/bin/bash

for x in `seq 1 9 `

do

echo `expr $x \* 10 '

done

備忘:

1)for 與in 連用,用於表示從某個集合中取得元素

2)`seq 1 9`表示取1-9的順序數列

3)expr 表示求後邊運算式的值

7.函數

備忘:

函數的定義一定要在引用之前,可以有參數可以沒有參數,可以想象為一群命令的集合

================================================================

PS:shell簡單的介紹備忘如上,如有錯誤,歡迎回帖指正

相關文章

聯繫我們

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