shell指令碼基礎

2021-10-04 12:39:47 字數 3227 閱讀 2273

●sheli指令碼基礎

2.指令碼基礎

1.1什麼是變數?

變數即可以變化的量

1.2變數名稱注意事項

只能包含字母、數字、下劃線, 並且不能以數字開頭

不應該跟系統中已有的環境變數重名,盡量不要全部使用大寫,盡量不要用「「下劃線開頭最好做到見名知義

不能使用程式中的保留宇,例如t for等

1.3變數型別

字元型數值型整型

浮點型布林型

1.4變數操作設定變數

引用變數

撤銷變數

*本單引號與雙引號的區別

[root@ymm-a-frr ~]

# x=99

[root@ymm-a-frr ~]

# echo '$x'

$x[root@ymm-a-frr ~]

# echo "$x"

99

.5 bash變數型別**

環境變數

本地變數(區域性變數)

位置變數

特殊變數(bash內建的,用來儲存某些特殊資料的變數,也稱系統變數)

1.5.1本地變數

var name-value		//本地安量,作用域為當前shell程序。對當前shelu外的其它shel包括當前shell的父shell,子shell程序均無效

local var name-value //區域性變數,作用域為當前**段,常用於函式

1.5.2環境變數

export var name=value 	//作用威為當際shel1程序及其子法程
1.5.3位置變數

$1, $2, 53, ...//用來引用指令碼的引數

shift [num] //位置變數使用完以後退出,後面的引數向前推進

1.5.4特殊變數

$0		//是指令碼本身的名字

$! //是shell最後執行的後台process的pid

$@ //是傳給指令碼的所有引數的列表

$* //是以乙個單字串顯示所有像指令碼傳遞的引數,與位置變數不同,引數可超過9個

$$ //是指令碼執行的當前程序id號

$? //是顯示上條命令的退出狀態,0表示 沒有錯誤,其他表示有錯誤

1.5.5 bash內建環境變數

path

shell

uidhistsize

hcme

pwdhistfile

p51

1.5.6 唯讀變數(常量)

readonly var nanevalue		//不能修改值, 不能銷毀,只能等shell程序終止時隨之消亡
2.1什麼是指令碼?

按實際需要,結合命令流程控制機制實現的源程式。說白點就是命令的堆研。

2.2程式返回值

程式執行以後有兩類返回值:

程式執行的結果

程式狀態返回**(8-255)

0:正確執行

1-255:錯誤執行,1. 2. 127系統預留,有特殊意義

2.3指令碼測試

bash如何測試指令碼是否有錯誤?報錯後如何排查?

bash -n scriptname //檢造指令碼是否有語法精誤

bash-x scriptnane //單步執行,檢查器本留在**

2.4寫指令碼注意事項

禁止將未成功執行過的**直接寫進指令碼

指令碼中的命令一定要用絕對路徑

2.5 shell算術運算

a=3

b=6let c=

$a+$b //let算術運算表示式

c=$[

$a+$b

] //$[算術運算表示式]

c=$(($a+$b))

//$((算術運算表示式))c=`

expr $a+$b`

//expr算術運算表示式,表示式中各運算元以及運算子之間要有空隔,而且要》使用命令引用

例:

//用let算術表示式

[root@ymm-a-frr ~]

# vim 1.sh

#/bin/bash //僅表示指令碼

a=3b=6

let c=

$a+$b

echo

$c //一定要記得輸出,不然沒結果

//用$[算術表示式]

[root@ymm-a-frr ~]

# bash 1.sh

9[root@ymm-a-frr ~]

# vim 1.sh

#/bin/bash

a=3b=6

c=$[

$a+$b

]echo

$c[root@ymm-a-frr ~]

# bash 1.sh

9//用expr算術表示式

[root@ymm-a-frr ~]

# vim 1.sh

#/bin/bash

a=3b=6c=`

expr $a+$b`

echo

$c[root@ymm-a-frr ~]

# bash 1.sh

9

2.6命令間的邏輯關係

邏輯與:&&

第乙個條件為假時,第二個條件不用再判斷,最終結果已經有 第乙個條件為真時, 第二個條件必須得判斷

邏輯或:||

前乙個命令的結果為真時,第二個命令就不執行

前乙個命令的結果為假時,第二個命令必須執行

shell指令碼基礎

執行shell指令碼有兩種方法 1 作為可執行程式 將上面的 儲存為 test.sh,並 cd 到相應目錄 chmod x test.sh 使指令碼具有執行許可權 test.sh 執行指令碼 注意,一定要寫成 test.sh,而不是 test.sh,執行其它二進位制的程式也一樣,直接寫 test.s...

shell指令碼基礎

shell定義 shell是命令解析器,將使用者的輸入的指令轉化為機器可以執行的程式。和c語言不同,指令碼有自己的語法。比較常用的格式是 bin bash或者 bin sh 如 這是乙個判斷輸入字元型別的程式 bin bash read key case in a z echo upperlette...

Shell指令碼基礎

1 shell是使用者與核心進行互動操作的一種介面,目前最流行的shell稱為bash shell 2 shell也是一門程式語言 解釋型的程式語言 即shell指令碼 3 乙個系統可以存在多個shell,可以通過cat etc shells命令檢視系統中安裝的shell,不同的shell可能支援的...