一、編程介紹
驅動 硬件默認是不能使用的
CPU控制硬件、不一樣的廠家硬件設備之間須要進行指令溝通,咱們須要驅動程序來進行「翻譯」;
更趨近與開發的工程師,要學習「彙編語言」;而「彙編語言」被廠商所限制;
C C++的底層就是彙編語言
如今編程:
基於高級語言,以及超高級語言,更好的讓程序員可以的實現編程功能
編程語言的分類:
高級語言
超高級語言須要翻譯成計算機可讀的語言(二進制指令)
解釋型--逐行翻譯執行,shell python java
bash -x filename.sh
編譯型---一次編譯,所有執行C語言 C++ C# java
程序=指令+數據
面向對象---側重數據的編程語言
面向過程---側重於指令
編程語言的執行方式:
一、順序執行
二、循環執行for(遍歷) while(循環條件) until(while相反)
三、選擇執行---分支 if casejava
二、shell腳本語言介紹
優勢:調用os(操做系統)的命令行,來實現全部功能。
缺點:沒有庫調用(對比Python)
shell腳本包括:1.命令 2.變量(全局變量、局部變量、本地變量、傳參)3.邏輯關係
·shell的第一句話
#!/bin/bash -- 定義腳本解釋器
/etc/shells -- 查看當前會話系統支持的shell程序
echo $SHELL -- 查看當前會話的shell程序
/etc/passwd -- 制定了用戶默認支持的shell程序(/sbin/nologin)python
shell的執行:
一、bash命令來執行腳本
-n 查看shell腳本的邏輯錯誤
-x 逐行顯示執行的腳本程序
二、受權 chmod + x filename.sh
使用全路徑執行腳本程序員
三、變量
環境變量
局部變量 declare:定義變量類型
本地變量 local 在函數中使用
變量類型:
數值型:
1.整型 int
2.浮點型 float
3.布爾值 0 1 (真Ture 假False)
字符串:
1.普通字符及字符串
2.數組
編程語言的分類:
強類型語言--數值必須被定義,才能被處理或運算
弱類型語言--編程語言能夠自動識別變量類型
(多態 一個數據具備多個屬性,而最後使用的屬性取決於他進行運算的數據)
傳參
$? --上一條命令的執行狀態 0 正確 1-255 錯誤
$1 $2..${10} --命令後面闖入腳本的數據,以空格爲分隔符
$# --統計傳參的數量
$* --表示全部傳參,全部的傳參以字符串形式進行傳輸出
$@ --表示全部傳參,將全部的傳參以列表的形式進行輸出shell
定義變量的格式:
NAME=value =賦值 ==判斷
declare 定義參數類型
declare -i 整數
declare -a 數組
變量命名:
1.下劃線的方式指定變量名稱
2.駝峯命名方式
四、test文件測試、條件判斷
在腳本中,咱們須要進行語句分支,須要進行test判斷實現
使用格式:
1.test[option]file
2.[ 條件語句 ] !條件語句先後有空格
常見的test選項:
比較選項:
-eq =
-ne
-gt >
-ge >=
-lt <
-le <=
判斷選項:
-f 判斷是否爲普通文件
-d 判斷是否爲目錄文件
-L 判斷是否爲鏈接文件
-r -w -x 判斷文件是否具備 讀 寫 執行 權限
關聯選項:
-o 或
-a 與
! 非
字符判斷:
= 判斷字符串是否相同
!= 不等於
-z 判斷字符串是否存在
-n 和-z相反 編程
五、邏輯運算
與 -- && 兩邊命令都爲真,結果爲真
或 -- || 倆邊命令一邊爲真。結果爲真,同時爲假,結果爲假
非 -- !=
這個邏輯運算符,先後對接的都是單獨存在的命令
[$? -eq 0] && exit 0 || exit 1數組
六、算數運算
let 1+1 bash
let a =1+1編程語言
echo $a函數
expr 1+1學習
let a =1+1
echo $a
$[$1+10]
a=$[2+3]
echo $a
$(($1/$2))
a=$((3/2))
echo $a