bash的特性之多指令執行
一上午的時間學習了bash的特性之多指令執行,和對shell腳本程式設計的初步學習。bash的特性的多
指令執行的順序執行結構就是把幾個指令用分号隔開。而選擇執行結構有與、或、非三種運算法則。shell腳本程式設計首先要知道什麼叫程式設計?程式設計就是為了能夠讓使用者在使用計算機的時候,以非互動的形式完成某些任務,我們需要将這些任務編制成一個檔案,讓計算機順序讀取,進而實作某些功能。程式設計語言分為進階語言和低級語言,其中進階語言可以根據不同的形式分為幾種。shell腳本程式設計是指過程式的程式設計語言,解釋運作,依賴于外部程式檔案運作。
下面是知識點的具體總結:
順序執行結構:
~]#COMMAND1;COMMAND2;……
選擇執行結構:
邏輯運算:
與:邏輯乘法 $$ 雙目運算符
0:SUCCESS--true
1-255:FAILURE—>false
true$$true=true
true$$false=false
false$$true=false
false$$false=false
與的短路邏輯運算:隻要第一個操作數為false,則其邏輯運算的結果一定為false
COMMAND1$$COMMAND2
如果COMMAND1能夠成功執行,則COMMAND2會被執行
如果COMMAND1不能夠成功執行,則COMMAND2不會被執行
!COMMAND1$$COMMAND2
如果COMMAND1能夠成功執行,則COMMAND2不會被執行
如果COMMAND1不能夠成功執行,則COMMAND2會被執行
或:邏輯加法 || 雙目運算符
ture||ture=ture
ture||false=ture
false||ture=ture
false||false=false
或的短路邏輯運算:隻要第一個操作數為ture,則其邏輯結果一定為ture
COMMAND1||COMMAND2
隻要COMMAND1成功執行則COMMAND2不需要執行,
隻有當COMMAND1執行失敗的時候,COMMAND2才會執行
!COMMAND1||COMMAND2
如果COMMAND1不能夠成功執行,則COMMAND2不會被執行
非:邏輯取反 ! 單目運算
!STRING 讀取指令曆史空間的内容
!ture=false
!false=ture
! COMMAND
!COMMAND1$$COMMAND2 相當于COMMAND1||COMMAND2
!COMMAND1||COMMAND2 相當于COMMAND1$$COMMAND2
德摩根定律:
!(A$$B) ==!A||!B
!(A||B) ==!A$$!B
邏輯運算符号優先級:
!>$$>||
異或: 雙目運算符
比對兩個操作數是否相同,如果不同,則邏輯運算結果為真,如果不同,則邏輯運算為假。
shell腳本程式設計:
什麼叫程式設計?
編寫程式源代碼,為了能夠讓使用者在使用計算機的時候,以非互動的形式完成某些任務,我們需要将這些任務編制成一個檔案,讓計算機順序讀取,進而實作某些功能。
程式設計語言:
進階語言:
根據源代碼的處理方式:
編譯運作語言: 源代碼-編譯器(編譯)-彙編器(彙編)-[連結器(庫的連結)]-可以直接執行的二進制檔案;
解釋運作語言: 源代碼-直接啟動跟源代碼對應的解釋器程式,由解釋器邊運作邊執行
根據其程式設計過程中的功能的實作是調用庫還是調用外部程式檔案:
完整程式設計語言:利用庫或程式設計元件進行程式設計
腳本程式設計語言:解釋器
shell腳本:調用shell程式,其次調用需要的外部指令檔案,指令解釋器,提供了單一的程式設計功能接口,過程式程式設計邏輯支援
根據程式的程式設計範式劃分:程式=指令+資料 程式=算法+資料結構
過程式程式設計語言:以指令為中心,圍繞指令(算法)的實作來設計資料和資料結構,資料為指令服務的
算法或者指令的實作形式:順序執行、選擇執行、循環執行
對象式程式設計語言:以資料為中心,将資料執行個體化為類,圍繞着資料的需求來部署指令
類、屬性、方法
低級語言:彙編語言
shell腳本程式設計
過程式的程式設計語言,解釋運作,依賴于外部程式檔案運作。
shell腳本是什麼?
純文字文檔---檔案中所存儲的資料都是以字元為機關存儲的。
根據使用者的需求來解決使用者問題的大量指令的組合體
“執行幂等性”--—任何指令多次執行結果是一緻的。
很多指令不具備“執行幂等性”,在shell腳本中就需要使用大量的程式邏輯來判斷某個指令是否滿足其運作條件,以避免在程式運作過程中出現嚴重錯誤
shell腳本中的代碼内容:
1. 首行必須是shebang,解釋器路徑,必須占據絕對行首:在執行時啟動相應的解釋器,以解釋腳本内諸多的指令。
#!/bin/bash
#!/bin/sh
#!/usr/bin/python
#!/usr/bin/perl
2.在shell腳本中,除了shebang之外,以#占據絕對行首的内容,均為注釋行,解釋器會忽略這樣的行的内容。
3.解釋器會忽略所有的空白行
4.大量的指令和關鍵字(if、else、then、do、while、for…)
注意:shell腳本一旦運作,是在目前的shell中根據shebang的訓示,開啟一個解釋器(子shell)解釋執行代碼内容,shell腳本的内容是在一個子shell程序中實作的。
我們可以利用文本編輯工具來編寫shell腳本:
nano、vi、vim、emacs、pico 推薦使用vim
約定下,腳本檔案的檔案名的字尾為 .sh 也可以不加。
腳本的運作方法:
1.為腳本檔案賦予執行權限,直接運作此檔案
chmod+x/PATH/TO/SCRIPT_FILE
~]#/PATH/TO/SCRIPT_FILE
如果在執行腳本時,隻寫腳本檔案名不給出路徑的話,必須確定PATH變量中儲存的路徑下,能夠找到該腳本檔案。
2.直接使用解釋器運作腳本,将腳本作為解釋器指令的參數
bash /PATH/TO/SCRIPT_FILE
本文轉自 Runs_ 51CTO部落格,原文連結:http://blog.51cto.com/12667170/1913268,如需轉載請自行聯系原作者