0409學習總結2(shell指令碼檔案的學習)

2021-07-30 07:34:31 字數 2973 閱讀 5215

shell命令解析器

1.shell指令碼是乙個包含一系列命令序列的文字檔案,當執行這個指令碼檔案時,檔案中包含的命令序列將得到執行。

2.shell指令碼有兩種執行方式

(1)互動式:使用者輸入一條命令,shell就執行一條

(2)批處理:寫成shell指令碼,一次性執行

3.shell指令碼編輯格式首先開頭

#!/bin/sh

如何新建乙個指令碼?

(1)vim demo.sh

編寫完之後執行

(2)sh demo.sh

4.注釋方式

(1)行注釋:#

(2)段注釋::<

!eof!

5.在shell程式設計中,所有的變數都由字串組成,並且不需要預先對變數進行宣告。

命名規範:

①首個字元必須為字母;

②中間不能有空格,可以有下劃線

③不能使用標點符號,不能使用bash中的關鍵字

6.shell指令碼中換行的如何使用

例子:echo -e "dsf \n"#-e是對字元\n進行轉換

7.shell指令碼中變數的設定

例子:#!/bin/sh

num=2

echo "this is the $num"

#對變數的引用加$

8.唯讀變數:readonly num=2

刪除變數:unset num(不能刪除唯讀變數)

9.在shell指令碼中全域性變數在函式使用完之後值是不會改變的

10.宣告區域性變數:例子:local hello="var2"

注意:1、變數賦值時,「=」左右兩側都不能有空格

2、bash中的語句結尾不需要分號

11.if語句的使用

例子:if [   ]

then

....

else if [   ]

then

.....

else

.....

fifi

#fi對應著上乙個的if

11.比較

比較操作整數操作字串操作

相同          -eq            =

不同          -ne           !=

大於          -gt            >

小於          -lt

<

大於或等於 -ge

小於或等於  -le

為空          -z

不為空    -n

例:比較整數a和b是否相等:if [ $a = $b ] (或eq)

判斷整數a是否大於整數b:if [ $a -gt $b ]

比較字串a和b是否相等:if [ $a = $b ]

判斷字串a是否為空:if [ -z $a ]

判斷整數變數a是否大於b:if [ $a -gt $b ]

注意:1、在「[」和「]」的左右都留有空格

2、「=」左右都有空格

12.for迴圈

for 變數 in [    ]

do。。。。。 

done

例子:for day in sun mon tue wed thu fri sat

doecho $day

done

輸出的結果就是:

sunmon

tuewed

thufri

sat

13.while迴圈

while 迴圈的基本結構是:

while [ condition ]   #condition為真執行

do  。 。。。。。

done

例子:#!/bin/sh

read count

a=1add=0

while [ $a -le $count ]

doadd=`expr $add + $a`

a=`expr $a + 1`

done

echo "add = $add

#這個例子是指鍵盤輸入兩個數,然後結果為這連個數的遍加

#`這個是鍵盤上1的左邊那個鍵位

14.until迴圈

until [ condition ]     #condition為假時執行

do。。。。

done

15.case語句的使用(類似於c中的switch)

例子:case 2 in

1) ;;

2) echo "sadasf" ;;

3);;

*);;

esca

#當鍵盤輸入2時,就會顯示結果為sadasf

#1、*)相當於default

#2、;;相當於break

16.函式的使用

格式:function function_name ( )

(1)函式返回值,可以顯式增加return語句;如果不加,會將最後一條命令執行結果作為返回值。

(2)shell 函式返回值只能是整數

(3)刪除函式:$unset .f function_name

17.陣列的使用

(1)在shell中,用括號來表示陣列,陣列元素用「空格」符號分割開。定義陣列的一般形式為:

array_name=(value1 ... valuen)

(2)還可以單獨定義陣列的各個分量:可以不使用連續的下標,而且下標的範圍沒有限制。

array_name[0]=value0

array_name[1]=value1

array_name[2]=value2

(3)讀取陣列元素值的一般格式是:

$(4)

使用@ 或 * 可以獲取陣列中的所有元素:$$

(5)獲取陣列的個數:

number=$或length=$

取得陣列單個元素的長度

length=$

*18.在編寫shell指令碼時一定要注意空格的使用,不然會出現錯誤

Shell學習 2 Shell變數

在shell中,變數的定義很簡單。shell變數 定義變數 var ddiicey 需要注意的是,與平時我所編寫的高階語言 c c python 等不同,變數名和 之間不能有空格。變數名的命名與其他語言一樣都遵循如下規則 下面給出了shell中一些合法以及非法的變數名示例 合法的變數名 runoob...

linux複習2(shell指令碼3)

1 設計乙個shell程式,判斷一檔案是不是塊或字元裝置檔案,如果是將其拷貝到 root mydev目錄下。1 echo e please input a filename 2 read filename 3 if c filename then 4 cp filename mydev 5 else...

Mac OS操作相關(2) shell命令篇

本文目錄 本文簡介 在windows下,有cmd供我們編寫命令列,執行一些基本功能 在linux下,有terminater終端供我們編寫命令列,操作一些任務 同樣的,在mac下也提供這樣的乙個命令列執行平台,它也叫做terminater終端 unix shell 讓我們來學習下mac下的termin...