日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法及shell脚本编程基础

發布時間:2025/3/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法及shell脚本编程基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

bash存在多命令執行的特性,例如:# COMMAND1 $(COMMAND2);還有進程之間的通信(IPC):# COMMAND1 | COMMAND2…

一、命令執行結構與算法

命令執行中,存在順序執行結構:分號分隔 # COMMAND1 ; COMMAND2 ; …。同時存在選擇執行結構:邏輯運算與、或、非、異或,其中最主要的為選擇執行結構,具體討論如下。

1、與:邏輯乘法 &&

狀態返回值:0對應TRUE,1-255對應FALSE

具體算法為:True &&true == true

? ? ? ? ? ? True && false == false

? ? ? ? ? ? False &&true == false

? ? ? ? ? ? False && false == false

與運算存在短路邏輯運算:只要第一個邏輯操作數為假,則其邏輯操作結果一定為假。例如COMMAND1 && COMMAND2,解釋為:如果COMMAND1能夠成功執行,則COMMAND2會被執行;如果COMMAND1能夠成功執行,則COMMAND2會被執行

2、或:邏輯加法 ||

具體算法為:True || true == true

? ? ? ? ? ? True || false == true

? ? ? ? ? ? False || true == true

? ? ? ? ? ? False || false == false

或的短路邏輯運算:主要有一個邏輯操作數為true,則其邏輯運算結果一定為true。例如COMMAND1 || COMMAND2,解釋為:如果COMMAND1能夠成功執行,則COMMAND2就沒有必要執行;如果COMMAND1執行失敗,則COMMAND2不會被執行

3、非:邏輯取反 ?! ?

具體算法為: !COMMAND (!true = false、!false = true)

綜合以上三點,可以得到:

邏輯運算符優先級: !> && > ||?

?!COMMAND1 &&COMMAND2相當于 COMMAND1 ||COMMAND2,解釋為:如果COMMAND1能夠成功執行,則COMMAND2就沒有必要執行;如果COMMAND1執行失敗,則COMMAND2不會被執行?

?!COMMAND1 || COMMAND2相當于 COMMAND1 && COMMAND2,解釋為: 如果COMMAND1能夠成功執行,則COMMAND2會被執行;如果COMMAND1執行失敗,則COMMAND2不會被執行

?德摩根定律:!(A&&B)==!A||!B?

? ? ? ? ? ? ?!(A||B)==!A&&!B?

? 德摩根定律的例子為:!(COMMAND1 &&COMMAND2)|| COMMAND3,解釋為:COMMAND1 與COMMAND2同時執行成功才執行COMMAND3

算法或指令的實現形式:順序執行、選擇執行、循環執行

? 4、異或

? 比對兩個操作數是否不同。如果不同,則邏輯運算結果為真,如果相同,邏輯運算結果為假 ??


二、Shell腳本編程

Shell腳本編程的編程即編寫程序源代碼。為了能夠讓用戶在使用計算機的時候,能以非交互式的方式完成某些任務,所以我們需要把這些任務編制為一個文件,讓計算機順序讀取,從而實現功能;Shell腳本編程的動態編譯即調用庫文件。

shell腳本是根據用戶的需求解釋用戶問題的大量命令組合體,為純文本文檔;調用shell程序,其次調用需要的外部命令文件,命令解釋器。 Shell腳本編程為過程式編程語言,解釋運行,依賴于外部程序文件運行 提供了單一功能的單程接口,過程式編程邏輯的支持。

很多命令都不具備“執行冪等性”,在shell腳本中就需要使用大量的程序邏輯來判斷某個目命令是否滿足其運行條件,以避免在運行過程中出現嚴重錯誤

編程語言分為高級語言和低級語言,具體解釋如下。

1、高級語言

(1)、根據源代碼的處理方式分為:編譯運行語言、解釋運行語言

編譯運行語言具體過程為:源代碼----->編譯器(匯編)-----> [連接器(完成庫的鏈接行為)]------->可以直接執行的二進制文件

解釋運行語言具體過程為:源代碼------->直接啟動跟源代碼對應的解釋器程序,由解釋器邊解釋邊執行

(2)、根據編程過程中功能的實現是調用庫還是調用外部程序分為:完整編程語言、腳本編程語言

? 完整編程語言具體為:利用庫或編程組件進行編程

? 腳本編程語言具體為:解釋器編程

(3)、根據程序的編寫范式分為:過程式編程語言、對象式編程語言

?過程式編程語言具體為:圍繞指令(

算法)的實現設計數據和數據結構,數據為指令服務

?對象式編程語言具體為:以數據(數據結構)為中心,將數據實例化為類,圍繞數據的需求來部署指令 ?類、屬性、方法

2、低級語言:匯編語言。


Shell腳本中的代碼內容有如下要求和解釋:

1、首行必須是shebang,解釋器路徑,必須占據絕對行首;在執行時,啟動相應的解釋器以解釋腳本內諸多的命令

例如:#!/bin/bash ;#!/bin/sh ;#!/usr/bin/python

2、在shell腳本中,除了shebang之外,以#占據絕對行首的內容,均為注釋行,解釋器會會忽略這樣行的內容

3、解釋會忽略腳本中所有的空白行

4、大量的命令和關鍵字(if, else, then, do, while, for……)

注意:shell腳本一旦運行,是在當前的shell中根據shebang的指示,開啟一個指示器(子shell)解釋執行代碼內容,shell腳本的內容是在一個子shell中實現的


腳本的運行方法部分方法如下:

1、為文本文件賦予執行權限,直接運行此文件;如果在執行腳本時,只寫腳本文件名不給出路徑的話,必須確保PATH變量中保存的路徑下,能找到該文本文件

?例如:chmod +x /PATH/TO/SCRIPT_FILE

? ? ? ?~]# /PATH/TO/SCRIPT_FILE

2、直接使用解釋器運行腳本,將腳本作為解釋器命令的參數

?例如:bash /PATH/TO/SCRIPT_FILE




? ? ?本文轉自little_ding 51CTO博客,原文鏈接:http://blog.51cto.com/12496428/1912843,如需轉載請自行聯系原作者



新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的算法及shell脚本编程基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。