Shell指令碼基礎

2021-08-18 20:29:37 字數 3346 閱讀 4970

(1)shell是使用者與核心進行互動操作的一種介面,目前最流行的shell稱為bash shell

(2)shell也是一門程式語言《解釋型的程式語言》,即shell指令碼

(3)乙個系統可以存在多個shell,可以通過cat /etc/shells命令檢視系統中安裝的shell,不同的shell可能支援的命令語法是不相同的

(1)第一種:輸入指令碼的絕對路徑或相對路徑。首先要賦予+x許可權

/root/helloworld.sh

./helloworld.sh

或者,不用賦予+x許可權,而用直譯器解釋執行

sh  helloworld.sh
(2)第二種:bash或sh +指令碼

sh /root/helloworld.sh

sh helloworld.sh

(3)第三種:在指令碼的路徑前再加」. 「

. /root/helloworld.sh

. ./helloworld.sh

(4)區別:

第一種和第二種會新開乙個bash,不同bash中的變數無法共享

(1)shell變數概述:

linux shell中的變數分為「系統變數」和「使用者自定義變數」,可以通過set命令檢視那系統變數

(2)系統變數:

$home、$pwd、$shell、$user等等

(3)變數定義1:

(4)變數定義2:

(5)將命令的返回值賦給變數

(6)shell中的特殊變數

(7)$*與$@區別

(1)格式:expr m + n 或$((m+n)) 注意expr運算子間要有空格

(2)計算(2+3)*4:分步計算

s=`expr 2 + 3` 

expr $s \* 4

(3)計算(2+3)*4:一步完成計算

expr `expr 2 + 3

` \* 4

echo `expr \`expr 2 + 3\` \* 4

`//或

$(((2+3)*4))

(1)第一種:

#語法

for n in12

3doecho

$ndone

#執行效果

[root@cent01 ~]# for n in 1 2 3

> do

> echo

$n> done12

3

#語法

for n in12

3; do

echo

$n; done

#執行效果

[root@cent01 ~]# for n in 1 2 3;do echo $n;done12

3

#語法

for n in ; do

echo

$n; done

#執行效果

[root@cent01 ~]# for n in ; do echo $n; done12

3

(2)第二種:

#語法

for ((i = 0; i <= 5; i++))

do echo "welcome $i times"

done

#執行效果

[root@cent01 ~]# for((i=0;i<=5;i++))

> do

> echo "welcome $i times"

> done

welcome 0

times

welcome 1

times

welcome 2

times

welcome 3

times

welcome 4

times

welcome 5

times

#語法

for ((i = 0; i <= 5; i++)); do echo "welcome $i times"; done

#執行效果

[root@cent01 ~]# for ((i = 0; i <= 5; i++)); do echo "welcome $i times"; done

welcome 0

times

welcome 1

times

welcome 2

times

welcome 3

times

welcome 4

times

welcome 5

times

(1)第一種:

#語法

while expression

docommand

…done

(2)第二種:

#語法

i=1while ((i<=3))

doecho

$ilet i++

done

#效果[root@cent01 ~]# i=1

[root@cent01 ~]# while((i<=3))

> do

> echo

$i> let i++

> done12

3

=字串比較

-lt 小於

-le 小於等於

-eq 等於

-gt 大於

-ge 大於等於

-ne 不等於

-r 有讀的許可權

-w 有寫的許可權

-x 有執行的許可權

-f 檔案存在並且是乙個常規的檔案

-s 檔案存在且不為空

-d 檔案存在並是乙個目錄

-b檔案存在並且是乙個塊裝置

-l 檔案存在並且是乙個鏈結

(1)語法:

[ function ] funname [()

]function

start

() / function

start / start

()

(2)注意:

a、必須在呼叫函式地方之前,先宣告函式,shell指令碼是逐行執行。不會像其它語言一樣先預編譯

b、函式返回值,只能通過$? 系統變數獲得,可以顯示加:return 返回,如果不加,將以最後一條命令執行結果,作為返回值。 return後跟數值n(0-255)

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 指令碼基礎

bin bash 判斷172.40.51.0網段有多少是開關機狀態 x 0y 0 for i inseq 254 doping c1 i0.1 w1 172.40.51.i if eq 0 then echo 172.40.51.i is up let x else echo 172.40.51.i...