計算機只能識別二進位制指令
程式=指令+資料
根據服務的重心不同,我們分為面向過程程式設計,物件導向程式設計;
a) 面向過程:側重於指令的程式語言
b) 物件導向:側重於資料的程式語言
高階語言、超高階語言需要翻譯成計算機可讀的語言(二級制指令)
a) 解釋型:逐行翻譯,逐行執行(解釋一行、執行一行)shell、python
b) 編譯型:一次編譯,全部執行 c、c++、c#
a) 順序執行 : 一行一行的執行
b) 迴圈執行 : for、while、until
c) 選擇執行(分支): if、case
呼叫os(作業系統)的命令列,來實現所有功能;
沒有庫呼叫(區分python)
a) 命令**很重要**
b) 變數(全域性變數、區域性變數、本地變數、傳參)
c) 邏輯關係
/etc/shells – 檢視當前系統支援的shell程式
echo $shell – 檢視當前會話的shell程式
/etc/passwd – 制定了使用者預設支援的shell程式(/sbin/nologin)
a) bash命令來執行指令碼:
-n 檢視shell指令碼的邏輯錯誤(注意單詞的錯誤檢查不出來)
-x 逐行顯示執行的指令碼程式(方便排錯)
b) 授權: chmod u+x filename.sh 使用全路徑執行指令碼即可
---環境變數檢視:env
---檢視更詳細的環境變數:set
a) 數值型:
整型 int
浮點型 float
布林型 boolean
b) 字串:
普通字元及字串
陣列強型別語言: --- 數值必須被定義變數型別,才能進行處理或運算
弱型別語言: --- 程式語言可以自動識別變數型別
【*多型*】一種數值具有多個屬性,而最後使用的屬性取決於和他進行運算的資料
$1、$2 … $:執行指令碼命令後面傳入指令碼的資料,以空格為分隔符
$# :統計傳參數量 $
$* :表示所有的傳參,以字串的形式進行輸出
$@ :表示所有的傳參,將所有的傳參以列表的形式進行輸出
name=value
通過declare定義變數型別
declare -i a=10 定義變數a為整型,value為10
declare -a b 定義陣列
a) 下劃線的方式指定變數名稱
b) 使用駝峰命名方式
在指令碼中,我們需要進行語句分支;就是做判斷;
判斷就是使用test命令來實現
a) test [option] file
b) [條件語句]
a) 數值比較選項:
-eq 等於
-ne 不等於
-gt 大於
-ge 大於等於
-lt 小於
-le 小於等於
b) 判斷選項:
-e 判讀檔案是否存在
-f 判斷是否為普通檔案
-d 判斷是否為目錄檔案
-l 判斷是否為鏈結檔案
-r -w -x 判斷是否具有 讀 寫 執行
c) 關聯選項:
-o 或
-a 與
! 非
d) 字串判斷:
= 判斷兩邊的字串是否相等
!= 不等於
-n 判斷字串是否存在,存在為真,不存在為假
-z 和-n相反 存在為假,不存在為真
與 && 兩邊的命令,都為真,結果才是真
或 || 兩邊的命令,一邊為真,就是真,同時為假,才是假
非 !=
這個邏輯運算子,前後對接的都是單獨存在的命令;
例子:[ $? -eq 0] && exit 0 || exit 1
1、let 1+1let a=1+1
echo
$a2、expr
1*1expr
1 * 10
3、$[$
1+10
] a=$[2+3
]
echo
$a4、$(($
1/$2
)) a=$((3/2
))
echo $a
linux shell 程式設計
bin bash comments your commands go here 首行中的符號 告訴系統其後路徑所指定的程式bash即是解釋此指令碼檔案的shell程式。除第一行外,以 開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上 這個符號表明下一行與此行會合併為同一行。有環境變...
linux shell 程式設計
1 程式設計入門 shell的簡介。從程式設計師的角度來看,shell本身是一種用c語言編寫的程式,從使用者的角度來看,shell是使用者與linux作業系統溝通的橋梁。使用者既可以輸入命令執行,又可以利用 shell指令碼程式設計,完成更加複雜的操作。在linux gui日益完善的今天,在系統管理...
Linux Shell 程式設計
檔案描述 shell 代號 dev stdin 標準輸入,一般指的是鍵盤輸入 dev stdout 標準輸出,一般指終端顯示器 dev stderr 標準錯誤,一般指終端顯示器 l輸出重定向 l輸入重定向 l追加重定向 l錯誤重定向 2 l輸出和錯誤同時重定向 應用例子 1.將 ls的結果輸出到檔案...