谢烟客---------Linux之Bash基础特性(2)
Linux之哲學思想
????一切皆文件
????避免交互,實現Bash編程
????文本編程命令實現配置
????組合小程序完成復雜任務
總結
????過程式編程
????對象式編程
????編譯執行
????解釋執行
????程序的組成
????數據可存儲的位置
? ? 數據類型的字符和數值存儲的區別
? ? 變量類型,即為內部數據的類型
????bash
? ? ?格式:shebang -> cpu ->解釋器
?????過程式編程、解釋執行
?????變量的類型為:弱類型?
???? 變量類型的作用? ?
11)Bash編程
編程風格:過程式編程、對象式編程
過程式編程:目的解決問題
????以指令為中心組織數據,由指令決定數據組織。數據服務于指令,指令的堆積
????為了完成復雜的任務
????????順序執行:逐個運行任務
????????選擇執行:有一個標準,只執行某些代碼片段
????????循環執行:讓某些代碼片段重復執行N次
對象式編程
????以數據為中心,組織指令
編程執行的方式
????編譯執行:c,java 先翻譯后執行:高級語言 --> 編譯 --> 目標代碼 --> 匯編 --> 二進制指令
????解釋執行:shell,python,java 邊翻譯邊執行,為了避免語境的錯亂,先對程序進行語法檢查后,都會進行翻譯:解釋型語言-->解釋器-->目標代碼
?
解釋執行的特性
????純文本、魔數為一個指明解釋器路徑的代碼
????由解釋器執行源程序
????CPU上運行的為解釋器,由解釋器運行文本
????????
魔數:源碼編譯為二進制后,文件的前n個字節,用于判斷可執行程序的格式
編程語言的結構:
????數據存儲:變量、數組
????表達式、語句
????
編程語言,為了使編程簡潔:
????操作系統提供庫
????提供解釋器
????
shell程序:
????過程式編程、解釋執行
shell編程特性
????直接調用系統程序
????命令的堆砌
????嚴重依賴操作系統的環境
????
shell腳本的格式:
????必須有固定的格式:首行為魔數
????必須能讀取$PATH的值,bash嚴重依賴PATH查找執行程序文件
????
運行腳本:
????1、給予權限、通過具體的路徑指定文件執行
????2、直接解釋執行,將腳本作為解釋器程序的參數執行
2、變量
????變量名:用名字可引用的命令的內存空間,用名字即可調用事先劃分的內存空間,內存空間的名字
????變量: 單個命令的內存空間
????程序 = 指令 ?+ 數據
????數據可存儲在變量、數組、列表、文件
????
????變量中存儲的數據的類型
????字符型:用二進制位表示所有變化。例如 2^16表示所有漢字的5000種變化,這種規定有GBK2313,GB18030等。用2^8表示所有數字、字母、特殊字符的127種變化,美國規定的ASCII碼表
????所以存儲一個漢字時,用16位即可 ,存儲一個數字時,用8位即可
????數值型
????? ? 整型,數值型數據例如110十進制轉換為二進制數即可:110 --> 1101110 用7位即可
????? ? 浮點型?浮點數是數學中數的子集合,由一個純小數乘上一個指數值來組成。在計算機內,其純小數部分被稱為浮點數的尾數,對非0值的浮點數,要求尾數的絕對值必須>=1/2,稱滿足這種表示要求的浮點數為規格化表示
????????????
????*任何數據都能被這兩種類型包含
????今天:字符用16 + 16位即可
????相當于UNIX元年的天數
布爾型
1:true bash中用 命令的狀態結果的0表示?
0: ?false bash中用命令的狀態結果的1-255表示
邏輯運算:
與: 電路串聯,同時為true結果為true,其他均為假。
或: 電路并聯,一個為true結果為true,其他均為假。
非:電路的電磁感應,對運算的結果取反,非true為false. 非false為true
短路運算:
與: 左側為false,結果為false.左側為true,第二個必須要參與運算
或: 第一個為true,結果為true.左側為false,第十個必須要參與運算
? ? ?
運算:
? ? 全為字符型: 10 + 110 = 10110
????全為數值型: 10 + 110 = 120
? ? 數據類型不統一,運算就會混亂
2)變量
變量的類型:
? ? 變量的類型即是變量中數據存儲的類型
變量類型的作用:
????決定參與的運算
????決定變量的數據范圍:整型為4個字節,32位,2^32=40多億個數字,超出時,溢出
? ? 決定數據的存儲格式
變量類型
????字符
????數值
????????整型?
????????浮點型
????強類型和弱類型
????????強類型:必須申明變量為字符或數值型
????????弱類型:不用事先申明變量為字符或數值型,shell
? ??
弱類型的特性
????統一存儲為字符型
????如果需要用到運算時,會隱式轉換為數值型
轉載于:https://blog.51cto.com/sonlich/1952295
總結
以上是生活随笔為你收集整理的谢烟客---------Linux之Bash基础特性(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于vue的移动web app页面缓存解
- 下一篇: Apache activemq入门示例(