bash基礎教程

2021-08-19 11:08:58 字數 4041 閱讀 8640

bash格式:#!/bin/bash

「# !」 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器

字串可以用單引號,也可以用雙引號,也可以不用引號.

單引號字串:

·單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的;

·單引號字串中不能出現單引號(對單引號使用轉義符也不行)

雙引號字串:

·雙引號裡的內容可以有變數

·雙引號裡可以出現轉義字元

拼接字串: 表示使用多個變數與字串拼接的變數.

獲取字串長度:

$ 表示對應變數名的字元長度

提取字串:

$ 表示從』變數』字串中的第3個字元開始擷取5個字串

查詢字串:

expr index 「變數」 「查詢的字串」 會根據字串的位置進行輸出.

shell陣列:

bash(shell)支援一維陣列(不支援多維的),並且沒有限定陣列的大小.

陣列元素的下標由」0″開始編號.獲取陣列中的元素要利用下標.下標可以是整數或算數表示式,應大於或等於」0″.

用括號來表示陣列.陣列元素用」空格」符號分割開.定義數字的一般形式為:

直接定義 : 陣列名=(值1 值2 …值x) | 各個分量定義: 陣列名[0]=*** 陣列名[1]=*** 陣列名[2]=***

讀取陣列:

讀取陣列元素值格式:

$$與$ 表示獲取陣列名對應的所有元素.

獲取陣列長度:

獲取陣列長度的方法與獲取字串長度的方法相同:

length=$

或:length=$

獲取陣列中單個元素的長度

length=$

1、區域性變數:區域性變數在指令碼或命令中定義,僅在當前shell例項中有效.其他shell啟動的程式不能訪問區域性變數.

2、環境變數:所有的程式,包括shell啟動的程式,都能訪問環境變數.有些程式需要環境變數來保證其正常執行.必要的時候shell指令碼也可以自定義環境變數.

3、shell變數:shell變數時由shell程式設定的特殊變數.shell變數中有一部分是環境變數,有一部分是區域性變數.這些變數保證了shelll的正常執行.

直接變數名賦值就可以:

export 賦值

例:a=」test」

※ 注意事項:變數名和等號之間不能有空格.以及如下規則:

● 首個字元必須為英文大小寫字母「 a-z、a-z 」

● 中間不能有空格,可以使用下劃線 「 _ 「

● 不能使用標點符號

● 不能使用bash裡的關鍵字。(即變數名不可以與其他命令相同)

使用定義過的變數,只要在變數名前加 」 $ 」 即可.(再次賦值時,不需要加 」 $ 」 )

例:name=』test』

echo $name

echo $

變數名的大括號為可選項.為了方便直譯器識別變數的邊界

{}標識括號內的值為變數

使用readonly 命令可以將變數屬性定義唯讀.

例:name=』test』

readonly name

如果再次賦值 name 變數,就會報錯。

unset命令可以刪除變數,直接unset 「變數名」

例:unset「a」

刪除變數a,a不在是變數

#! /bin/bash

for x(變數)in `expr 1 100`(變數的範圍)

do (迴圈語句的開始)

…… (需要迴圈的命令)

done

(迴圈語句結束)

#! /bin/bash

for ((表示式;表示式;表示式))

do (迴圈語句的開始)

…… (需要迴圈的命令)

done (迴圈語句結束)

for ((i=1

(賦給i的原始值為1)

;i<10

(變數i的值小於10)

;i++

(每次迴圈一次,變數就加一,步進值為1)

))for ((i=1

(賦給i的原始值為1)

;i<10

(變數i的值小於10)

;i=i+2

(每次迴圈一次,變數就加二,步進值為2)

))for ((i=1

(賦給i的原始值為1)

;(表示式為空則無限迴圈)

;i++

(每次迴圈一次,變數就加一,步進值為1)

))#! /bin/bash

if (條件1)

then (動作1)

elif (條件2)

then (動作2)

…… (命令)

else (匹配不上其他條件後匹配else)

(else的動作)

fi (條件語句的結束)

#! /bin/bash

while :

do(迴圈語句的開始)

…… (需要迴圈的命令)

done(迴圈語句的結束)

#! /bin/bash

while true

do(迴圈語句的開始)

…… (需要迴圈的命令)

done(迴圈語句的結束)

until執行一系列的操作直至條件為真時停止.條件可以為任意測試條件,並且測試發生在迴圈末尾。因此至少執行一次。

until (迴圈條件)

do(迴圈語句的開始)

…… (需要迴圈的命令)

done (迴圈語句的結束)

\a

警告字元,通常為ascii的bel字元

\b

後退

\c

抑制(不顯示)輸出結果中任何結尾的換行字元(只在%b格式指示符控制下的引數字串中有效),而且,任何留在引數裡的字元、任何接下來的引數以及任何留在格式字串中的字元,都被忽略

\f

換頁(formfeed)

\n

換行

\r

回車(carriage return)

\t

水平製表符

\v

垂直製表符

\\

乙個字面上的反斜槓字元

\ddd

表示1到3位數八進位制值的字元,僅在格式字串中有效

\0ddd

表示1到3位的八進位制值字元

命令解釋

例source a.sh

執行shlle指令碼a.sh

./a.sh

執行shell指令碼a.sh

前提:有執行許可權足夠

執行許可權新增:chmod u+x a.sh

env檢視全部環境變數

export

新增環境變數

expr

新增本地變數

read

使用者手動賦值

read -p「提示是資訊」

使用者手動進行賦值,引號裡面加的是提示資訊

pstree

檢視程序樹

sh -n

let做算術運算

let a=$i+1

運算$i+1的值賦給a

break

跳出當前迴圈

echo $?

測試上條命令是否成功,回顯0為成功,回顯其他都為失敗

命令解釋

例-ge

大於或等於

-gt

大於-le

小於或等於

-lt

小於-eq

等於-f

判斷檔案是否存在

#! /bin/bash

if [ -f $a.out ]

then

echo $a.out

fi-d

判斷目錄是否存在

#! /bin/bash

if [ -d $aaa ]

then

echo $a.out

XSL基礎教程

xsl基礎教程 一 http www 128.ibm.com developerworks cn xml ccidnet xslfund index1.html xsl基礎教程 二 http www.ibm.com developerworks cn xml ccidnet xslfund inde...

ps基礎教程

ps基礎教程 軟體簡介 推薦版本 流行多用的版本cs2 cs5,推薦cs3和cs5,cs2版本較舊,不推薦使用。基礎教學目錄 第一課 photoshop工具欄的使用01 第二課 工具欄的使用02 第三課 photoshop圖層 第四課 色彩原理和圖層的混合模式 第五課 圖層的樣式 第六課 圖層蒙版和...

php基礎教程

本教程旨在以最簡單 最易懂的方式,讓讀者對php有個整體上的把握和了解,並具備基本的php程式設計能力。本教程並不講環境搭建和一些技術竅門,但會提供一些示例,方便讀者理解概念。php可以用來作 和手機應用的伺服器介面,很多大型公司的 再用php做。php可以給手機應用提供伺服器介面。以.php結尾的...