shell程式設計總結

2021-08-14 16:58:49 字數 2964 閱讀 7514

一、shell的特點

一種高階程式語言,有變數、關鍵字、條件控制語句,如if、case、while、for這些語句。有自己的語法結構。

二、1.檢視系統使用的shell: echo $shell

2.檢視shell的位置

cd/bin

三、執行shell指令碼的方法

1、輸入定向到shell指令碼:bash < 指令碼名

四、shell語法

1、特殊字元用法

星號*:匹配任意字元的出現

方括號:匹配括號內所限定的任何乙個字元

雙引號」:雙引號括起來的字元作為普通字元對待;

例:echo 「my name is `pwd`」

`pwd`表示命令替換,輸出當前目錄

echo 「my home is $home」

$home表示變數替換,輸出home目錄

echo 「file*.?」

原樣輸出普通字元

單引號』:單引號括起來的字元都作為普通字元。

用「\」可以消除單引號的特殊含義。

倒引號``:命令替換符,被倒引號引起來的字串shell解釋命令列

例:today=`date`

echo today is $today(此處today是變數)

注釋#:shell將#看做注釋符號,忽略#後的字元

2、定義變數

a. 變數名可以由數字,字元和下劃線組成,但是變數名只能由字元和下劃線開頭,而不能是數字。

b. shell變數沒有儲存類和型別的限制,可以邊定義邊使用

c. 區分大小寫

d. 變數賦值

a) 變數名=字串

x=myshell

echo $x

b) 賦值號倆邊沒有空格 3、

從鍵盤讀入資料

a. 利用read

命令b. 

read 變數1 變數2

注意:如果變數個數與輸入資料個數一致,則一一對應賦值,如果變數個數大於輸入資料,則從開始一一對應,知道輸入的最後乙個,剩下的沒有對應的變數為空。如果變數個數小於輸入個數,則一一對應後剩下輸入資料全部賦給最後乙個變數 4、

輸入輸出命令

echo -e

「.......\c

」不換行

echo -e

「.......\f」進紙

echo -e

「...\t....

」錶跳格

echo -e

「.......\n」換行

echo -n

「.........

」禁止換行

-e 解釋轉義字元 5、

shell系統變數

$0:當前程式名稱

$n(1-9):$1 表示第乙個引數,$2 表示第二個引數,以此類推

$#:命令列引數的個數,即傳遞給程式的總的引數數目

$?:上乙個**或者shell程式在shell中退出的情況,如果正常退出則返回0,反之為非0值。

$*:以「引數1 引數2 ... 」 形式儲存所有引數,即傳遞給程式的所有引數組成的字串 6、

算數運算命令

a. let命令(

當表示式中有shell的特殊字元時,必須用雙引號將其括起來)

a=1

b=2

let c=a+b

echo $c

b. expr命令(運算子左右都有空格)

expr 10 + 10

expr 20 / 5

expr $a + $b

說明:字元*(乘)在shell中有特殊含義,因此他們的前面必須有轉義字元「\」

如:expr 2 \* 5

當有變數參與運算時,需要在變數名前面加「$」

如:a=11

expr $a \% 2 7、

控制結構

a. if語句

if…then…fi控制結構

if  [ condition ]

then

commands …

fiif…then…else控制結構:

if [ condition ]

then

true - commands

else

false - commands fi

if…then…elif控制結構:

if [ condition_1 ]

then

commands_1

elif [ condition_2 ]

then

commands_2 …

else

commands_n fi

if語句必須用fi結束

條件外面的方括號[ ]必不可少,條件前後必須加空格。

b. 條件測試

test 語句(可以代替if的方括號)

test是shell內部命令,它計算引數表示式的值為真還是為假。如果表示式為真,test返回0,否則,返回非0值。

if條件的一些判定大小命令

-eq:等於

-lt:小於

-le:小於等於

-gt:大於

-ge:大於等於

-ne:不等於

if條件邏輯命令

-a;相當於&&,「且」

-o:相當於||,「或」

c. 迴圈語句

while迴圈:while - do - done結構

while [ condition ] do

commands

done

until迴圈:until - do - done 結構

until [ condition ] do

commands

done

for迴圈:for - in - done結構

for variable in list - of - values do

commands

done

for ((條件1; 條件2; 條件3)) do

命令表done

shell程式設計總結

一 簡單shell程式示例 在乙個檔案中輸入,假設檔名為ex1 cat ex1 date pwd執行此程式時,輸入的命令則會實現 出現日期以及當前的路徑 二 建立shell指令碼 建立乙個shell指令碼可以利用編輯器vi進行 三 編寫內容 例如 echo hello word 但如果想要執行出來則...

shell程式設計總結

shell程式設計 shell常用萬用字元 匹配0個或多個字元 匹配任意乙個字元 list 匹配list中的任意單一字元 list 匹配出list中的任意單一字元以外的字元 c1 c2 匹配c1 c2中的任意單一字元 string1,string2,匹配string1,string2 或更多 其一字...

shell程式設計總結

shell程式設計中,使用變數無需事先宣告,同時變數名的命名須遵循如下規則 首個字元必須為字母 a z,a z 中間不能有空格,可以使用下劃線 不能使用標點符號 不能使用bash裡的關鍵字 可用help命令檢視保留關鍵字 需要給變數賦值時,可以這麼寫 變數名 值要取用乙個變數的值,只需在變數名前面加...