編程原理:
1、編程介紹
早期編程:
驅動 硬件默認是不能使用的;
不同的廠家硬件設備之間需要進行指令溝通,我們需要驅動程序來進行“翻譯”。
更趨近於硬件開發的工程師,要學習“匯編語言”;而“匯編語言”被廠家所限制;C C++的底層就是匯編語言。
現在編程:
基於高級語言,以及超高級語言,更好的讓程序員能夠實現編程功能。
編程語言的分類:
高級語言、超高級語言需要翻譯計算機可讀的語言(二進制指令)
解釋型 -- 逐行翻譯,逐行執行 shell python
bash -x filename.sh
編譯型 -- 一次編譯,全部執行 C語言 C++ C# Java
程序 = 指令 + 數據
面向對象 -- 側重於數據的編程語言
面向過程 -- 側重於指令的編程語言
編程語言的執行方式:
【一行一行】
1、順序執行
2、循環執行-- for(遍歷) while(循環條件) until(和while相反)
3、選擇執行--分支 if case
2、shell腳本語言介紹
優點:調用os(操作系統)的命令行,來實現所有功能
缺點:沒有庫調用(區分python)
shell腳本包括:1、命令 2、變量(全局變量、局部變量、本地變量、傳參)
shell的第一句話!!!
#!/bin/bash -- 定義腳本解釋器(普遍認為#為注釋行,這里特殊)shebang
#!/usr/bin/python
etc/shells -- 查看當前系統支持的shell程序
echo $/SHELL -- 查看當前會話shell程序
/etc/passwd -- 制定了用戶默認支持的shell程序(/sbin/nologin)
shell的執行:
1、bash命令來執行腳本
-n 查看shell腳本的邏輯錯誤(注意:單詞寫錯可不管)
-x 逐行顯示執行的腳本程序(方便排錯)
2、授權chmod u+x filename.sh
使用全路徑執行腳本,即可
3、變量
環境變量
局部變量 declare命令 -- 定義變量類型
本地變量 local在函數中使用
變量類型:
數值型:
1、整形 int
2、浮點型 float
3、布爾值 0 1(真 假)(true false)
字符串:
1、普通字符及字符串
2、數組
編程語言的分類:
強類型語言 -- 數值必須被定義,才能進行處理或運算
弱類型原因 -- 編程語言可以自動識別變量類型
【多態 一個數據具有多個屬性,而最后使用的屬性取決於和它進行運算的數據】
傳參
$?
$1 $2 ... ${10} -- 命令后面傳入腳本的數據,以空格為分隔符
$# -- 統計傳參數量 ${$#}
$* -- 表示所有的傳參,所有的傳參以字符串形式進行輸出
$@ -- 表示所有傳參,將所有的傳參以列表的形式進行輸出
【工作中要對所有的傳參進行操作的時候,就要考慮$*和$@】
定義變量格式:
NAME=VALUE
通過命令declare定義變量類型
declare -i 整數 int() str()
declare -a 數組
變量命令:
1、下划線的方式指定變量名稱
2、駝峰命名方式
4、test文件測試、條件判斷
在腳本中,我們需要進行語句分支;(做判斷)
判斷就是使用test命令來實現;
使用格式:
1、test [option] file
2、[條件語句]
【什么時候加[ ];什么時候不加[ ]】
常見的test選項:
比較選項:
-eq 等於
-ne 不等於
-gt 大於
-ge 大於等於
-lt 小於
-le 小於等於
判斷選項:
-f 判斷是否為普通文件
-d 判斷是否為目錄文件
-l 判斷
-r -w -x
關聯選項:
-o 或
-a 與
! 非
5、邏輯運算
與 && :兩邊的命令,都為真,結果才是真
或 || :兩邊的命令,一邊為真,就是真,同時為假,才是假
非 !=
6、算術運算
let 1+1
expr 1*1
$[$1+10]
$(($1/$2))
+ - * / % **