今天咱們學習了bash特性多命令執行包括各個命令之間的邏輯關係。其中包含「與」「或」「非」命令的執行。下面即爲咱們所學習的這些邏輯命令關係之間的關係。python
選擇執行結構:算法
邏輯運算:shell
與:邏輯乘法,&&編程
0:成功執行 -->truevim
1-255:失敗 -->falsebash
true && true =true數據結構
true && false = false編程語言
false && true = falseide
false && false = false工具
「與」運算的短路邏輯運算:只要第一個操做數爲false,則其邏輯運算的結果必定爲false;
COMMAND1 && COMMAND2
若是COMMAND1可以成功執行,則COMMAND2會被執行;
若是COMMAND1執行失敗,則COMMAND2不會被執行。
或:邏輯加法,||
true || true = true
true || false = true
false || true = true
false || false = false
「或」的短路邏輯運算:只要第一個操做數爲true,其邏輯運算的結果必定爲true;
COMMAND1 || COMMAND2
只要COMMAND1可以成功執行,COMMAND2就不必執行了。
只有當COMMAND1執行失敗的時候,COMMAND2纔會被執行。
非:邏輯取反,!,單目運算符
!STRING:讀取命令歷史空間的內容;
!true = false
!false = true
!COMMAND
!COMMAND1 && COMMAND2 至關於 COMMAND1 || COMMAND2
!COMMAND1 || COMMAND2 至關於 COMMAND1 && COMMAND2
德摩根定律:
!(A && B) ==!A || !B
!(A || B) ==!A && !B
邏輯運算符號優先級:!>&& >||
異或(雙目運算):比對兩個操做數是否不一樣,若是不一樣,則邏輯運算結果爲真;若是相同,則邏輯運算結果爲假;
shell腳本編程:
什麼叫編程?簡單來講就是編寫程序源代碼。爲了可以讓用戶在使用計算機的時候,可讓計算機以非交互的方式完成某些任務,須要將這些任務編製成爲一個文件,,讓計算機順序讀取, 從而實現功能;
編程語言:
高級語言:
根據源代碼的處理方式:
編譯運行語言:源代碼--> 編譯器(編譯)-->彙編器(彙編)-->[連接器(庫的連接)]-->能夠直接執行的二進制文件;
解釋運行語言:源代碼--> 直接啓動跟源代碼對應的解釋器程序,由解釋器邊解釋邊執行;
根據其編程過程當中的功能的實現是調用庫仍是調用外部程序語言;
完整的編程語言:
利用庫或編程組件進行編程:
腳本編程語言:
解釋器
shell腳本:調用shell程序,其次調用須要的外部命令文件;命令解釋器
提供了單一的編程功能接口;過程式編程邏輯的支持;
根據程序的編寫範式:程序=指令+數據
過程式編程語言:
以指令爲中心,圍繞指令(算法)的實現設計數據和數據結構,數據爲指令服務的;
算法或指令的實現形式:
順序執行 選擇執行 循環執行
對象式編程語言:
以數據爲中心,將數據實例化爲類,圍繞着數據的需求來部署指令
類、屬性、方法
低級語言:
彙編語言
shell腳本編程
過程式編程語言,解釋運行,依賴於外部程序文件運行;
shell腳本究竟是什麼?
1.純文本文檔--文件中所存儲的數據都是以字符爲單位進行存儲的;
2.根據用戶的需求來解決用戶問題的大量命令的組合體;
3.「執行冪等性」--任何命令屢次執行的結果是一致的;
不少命令不具有「執行冪等性」,在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、emace、pico
推薦使用vim
約定下,腳本文件名的後綴爲.sh 也能夠不加
腳本的運行方法:
1.爲腳本文件賦予執行權限,直接運行此文件;
chmod +x /PATH/TO/SCRIPT_FILE
~]# /PATH/TO/SCRIPT_FILE
若是在執行腳本時,只寫腳本名不給出路徑的話,必須確保PATH變量中保存的路徑下,能找到該腳本;
2.直接使用解釋器運行腳本,將腳本做爲解釋器命令的參數;
bash /PATH/TO/SCRIPT_FILE