您好,登錄后才能下訂單哦!
bash特性之多命令執行:
~]# command1 $(command2)
~]# command1 | command2 .... 進程之間通信(IPC)
順序執行結構:
~]# command1 ; command2 ;......
選擇執行結構:
邏輯運算
與:邏輯乘法, && ,雙目運算符
0:success(成功) --->true
1-225:failure(失敗) --->false
True && true =true
True && false =false
False && true =false
False && false =false
“與”運算的短路邏輯運算:只要第一個操作為false,則其邏輯運算的結果一定為false
command1 && command2
如果command1能夠成功執行,則command2會被執行
如果command1執行失敗,則command2不會被執行
!command1 && aommand2
如果command1能夠成功執行,則command2不會被執行
如果command1執行失敗,則command2才會被執行
或:邏輯加法, || ,雙目運算符
True || true =true(成功)
True || false =true
False || true =true
False || false =false(失敗)
“或”的短路邏輯運算,只要第一個操作系統為true,則其邏輯運算的結果一定為true
command1 || command2
只要command1能夠成功執行,command2就沒有必要執行了
只有當command1執行失敗的時候,command2才會被執行
!command1 || aommand2
如果command1能夠成功執行,則command2會被執行
如果command2執行失敗,則command2不會被執行
非:邏輯取反, ! ,單目運算符
!STRING:讀取命令歷史空間的內容
!True = false
!False = true
!Command
!command1 && aommand2 相對于 command1 || command2
!command1 || aommand2 相對于 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/per1
2. 在shell腳本中,除了shebang之外,以#占據絕對行首的內容,均為注釋行,解釋器會忽略這樣的內容
3. 解釋器會忽略腳本中所有的空白行
4. 大量的命令和關鍵字(if,else,then,while,for,....)
注意:shell腳本一旦運行,是在當前的shell中根據shebang的指示,開啟一個解釋器(子shell)來解散執行代碼內容,shell腳本的內容是在一個子shell進程中實現的,
我們可以利用文本編輯工具來編寫shell腳本
推薦使用:VIM
約定下,腳本文件名的后綴為.sh,也可以不加
腳本的運行方法:
1. 為腳本文件賦予執行權限,直接運行此文件
注意:如果在執行腳本時,只寫腳本文件名不給出路徑的話,必須確保PATH變量中保存的路徑下,能找到該腳本文件,
2. 直接使用解釋器運行腳本,將腳本作為解釋器命令的參數:
Bash后邊加個絕對路徑
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。