1.shell指令碼的建立過程
shell指令碼就是放在乙個檔案中的一系列llinux命令和實用程式。
shell指令碼固定格式如下:
#!/bin/bash
#注釋命令
...#!用來解釋指令碼檔案,#開頭為注釋,如果一行未完,可以在行尾加上「\」字元,表示與下一行合併為一行。
2.shell中的特殊字元
1.萬用字元
萬用字元主要用於模式匹配,例如檔名匹配、字串查詢等。常用如下:
星號(*),匹配0個或多個字元。
問號(?),匹配任意單字元。
方括號(),匹配方括號中限定的任意乙個字元
感嘆號(!),表示方括號列出的字元以外的其他字元。
2.引號
引號分為雙引號、單引號和反引號,除美元符號($)、反引號(』)、和反斜線(\)仍保留其特殊功能外,其餘字元均作為普通字元對待。
3.輸入輸出重定向符
輸入重定向符「<」的作用是把命令的標準輸入重新定向到指定檔案;輸出重定向符「>」的作用是把命令的標準輸出重新定向到指定檔案。
此外還有輸出附加定向符「>>」,它的作用是將命令的輸出附加到指定檔案的後面,而不破壞檔案原有的內容。
3.shell變數
shell是一種解釋型語言,使用變數時不需要事先進行宣告,對乙個變數賦值,實際上就是定義了這個變數。
例如對str賦值::
str="hello word" //注意等號兩邊不能有空格。
變數賦值之後,就可以使用美元符號($)對其進行引用如下:::
echo $str
由於shell變數是沒有型別的,所以使用者在使用同乙個變數,可以存放字元,也可以存放整數。
使用unset命令清楚已經定義的變數。
unset str
為了使shell程式設計更為有效,系統還提供了一些特殊的變數,如下所示。
$0: 指令碼名稱
$#: 命令列引數的個數
$*: 所有的命令列引數
$[1-n]: 第1-n個命令列引數
$$: 當前程序的表示符
$!: 後台執行的最後乙個程序的標示符
$?: 命令的退出狀態,0表示沒有錯誤
4.條件測試
test命令通常用來計算乙個條件表示式的值,在條件語句和迴圈語句中經常被用來判斷是否滿足某些條件。格式如下:
test 條件
或[條件] /使用方括號時,要注意在條件兩邊加上空格。
1.字串測試
主要操作符如下:
=:兩個字串相等。
!=:兩個字串不等。
-z:字串為空。
-n:字串不為空。
2.數值測試
主要操作符如下:
-eq: 兩個數相等
-ne:兩個數不相等
-gt:第乙個數大於第二個數
-lt:第乙個數小於第二個數
-le:第乙個數小於等於第二個數
-ge:第乙個數大於等於第二個數
3.檔案狀態測試
檔案測試主要用來測試檔案的型別以及訪問許可權等,操作符包括如下:
-f:是否為普通檔案
-d:是否為目錄
-c:是否為字元裝置檔案
-b:是否為塊裝置檔案
-s:檔案大小是否為零
-r:使用者對檔案是否有讀許可權
-w:使用者對檔案是否有寫許可權
-x:使用者對檔案是否有執行許可權
4.邏輯操作
邏輯操作包括如下:
-a: 邏輯與
-o: 邏輯或
!: 邏輯非
5.控制結構
1.if語句
if語句用來實現條件分支結構,它的一般格式如下:
if 條件1
then
命令1elif 條件2
then
命令2else
命令3fi if語句以它的反寫fi結尾
2.case語句
格式如下:
case 字串 in
模式1)
命令1;;
模式2)
命令2;;
...*)
命令n;;
esac ///結尾也是反case
3.for迴圈
使用for迴圈,中的變數名來遍歷列表中的所有取值,當變數值在列表中時,即執行一次所有命令。
for迴圈的一般格式如下:
for 變數名 in[列表]
do命令 1
命令 2
...done
4.while迴圈
while迴圈的一般格式如下:
while 條件
do命令1
命令2。。。
done
5.until迴圈
一般格式如下: //與while 區別不成立時執行do語句
until 條件
do命令 1
命令 2
...done
6.break語句
break語句用來跳出迴圈過程,如果用在多層迴圈之中,可以指定跳出的迴圈個數,如果在兩層迴圈中,使用break 2剛好跳出整個迴圈。
7.continue語句
continue語句用來跳過迴圈中後面的語句,直接開始下一次迴圈。
6.shell函式
與很多高階語言一樣,shell中也允許定義函式
格式如下:
[function] 函式名()
linux第二節SHELL指令碼
1.shell指令碼的建立過程 shell指令碼就是放在乙個檔案中的一系列llinux命令和實用程式。shell指令碼固定格式如下 bin bash 注釋命令 用來解釋指令碼檔案,開頭為注釋,如果一行未完,可以在行尾加上 字元,表示與下一行合併為一行。2.shell中的特殊字元 1.萬用字元 萬用字...
python學習第二節
1.直接執行.py檔案和進入python互動模式有什麼不同 輸入python進入python直譯器相當於輸入一行執行一行,直接執行.py檔案相當於直接輸出最後結果,不看中間是如何執行的 2.python的迴圈有兩種,一種是for in,一次遍歷元素,for x in 迴圈就是把每個元素代入變數x,然...
python學習 第二節
鏈式賦值a b 1 系列解包賦值a,b 1,2 注 系列解包賦值可實現變數值得交換 a,b 1,2 a,b b,a a 2,b 1 常量 python中不存在常量,只是約定常量命名規則 1.整型int int 實現其他型別轉換到int python3整數取值可以是任意範圍 2.浮點型float 用科...