溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

bash特性之邏輯運(yùn)算和shell腳本的編寫

發(fā)布時(shí)間:2020-07-10 22:37:23 來源:網(wǎng)絡(luò) 閱讀:795 作者:楊鑠 欄目:開發(fā)技術(shù)

bash特性之多命令執(zhí)行:

     ~]#  command1  $command2

     ~]#  command1  |  command2  ....  進(jìn)程之間通信(IPC

   順序執(zhí)行結(jié)構(gòu):

     ~]#  command1  ; command2  ;......

   選擇執(zhí)行結(jié)構(gòu):

     邏輯運(yùn)算

        與:邏輯乘法, && ,雙目運(yùn)算符

           0success(成功) --->true

           1-225failure(失?。?--->false

           True  &&  true  =true

           True  &&  false  =false

           False  &&  true  =false

           False  &&  false  =false

           “與”運(yùn)算的短路邏輯運(yùn)算:只要第一個(gè)操作為false,則其邏輯運(yùn)算的結(jié)果一定為false

           command1  &&  command2

               如果command1能夠成功執(zhí)行,則command2會(huì)被執(zhí)行

               如果command1執(zhí)行失敗,則command2不會(huì)被執(zhí)行

        !command1  &&  aommand2

         如果command1能夠成功執(zhí)行,則command2不會(huì)被執(zhí)行

         如果command1執(zhí)行失敗,則command2才會(huì)被執(zhí)行

 

        或:邏輯加法, || ,雙目運(yùn)算符

           True  ||  true  =true(成功)

           True  ||  false  =true

           False  ||  true  =true

           False  ||  false  =false(失?。?/span>

            “或”的短路邏輯運(yùn)算,只要第一個(gè)操作系統(tǒng)為true,則其邏輯運(yùn)算的結(jié)果一定為true

            command1  ||  command2

                 只要command1能夠成功執(zhí)行,command2就沒有必要執(zhí)行了

                 只有當(dāng)command1執(zhí)行失敗的時(shí)候,command2才會(huì)被執(zhí)行

         command1  ||  aommand2

           如果command1能夠成功執(zhí)行,則command2會(huì)被執(zhí)行

           如果command2執(zhí)行失敗,則command2不會(huì)被執(zhí)行

 

        非:邏輯取反, ! ,單目運(yùn)算符

           !STRING:讀取命令歷史空間的內(nèi)容

           !True   =   false

           False  =  true

           !Command

             !command1  &&  aommand2  相對于  command1  ||  command2

             !command1  ||  aommand2  相對于  command1  &&  command2

 

           摩根定律:

              !(A  &&  B= !  A  看,||  !  B

              ?。?/span>A  ||  B= !  A  &&  !  B

           邏輯運(yùn)算符號優(yōu)先級:

             ! >  &&  >  ||

        異或:雙目運(yùn)算符

          比對兩個(gè)操作數(shù)是否不同,如果不同,則邏輯運(yùn)算結(jié)果為真,如果相同,則邏輯運(yùn)算結(jié)果為假

 

 

Shell腳本編程:

  什么叫編程:編寫程序源代碼,為了能夠讓用戶在使用計(jì)算機(jī)的時(shí)候,可以讓計(jì)算機(jī)以非交互式的方式完成某些任務(wù),需要將這些任務(wù)編制稱為一個(gè)文件,讓計(jì)算機(jī)順序讀取,從而實(shí)現(xiàn)功能。

 

  編程語言:

    高級語言:

      根據(jù)源代碼的處理方式:

        編譯運(yùn)行語言:

          源代碼 ---> 編譯器(編譯) ---> 匯編器(匯編) ---> 鏈接器(庫的鏈接)(不是必須) --->     可以直接執(zhí)行的二進(jìn)制文件

        解釋運(yùn)行語言:

          源代碼 ---> 直接啟動(dòng)跟源代碼對應(yīng)的解釋器程序,由解釋器邊解釋邊執(zhí)行

      根據(jù)其編程過程中的功能的實(shí)現(xiàn)是調(diào)用庫還調(diào)用外部程序文件

        完整編程語言:

          利用庫或編程組件進(jìn)行編程

        腳本編程語言:

          解釋器

          Shell腳本,調(diào)用shell程序,其次調(diào)用需要的外部命令文件,命令解釋器,提供了單一功能的編程接口,過程式編程邏輯的支持

      根據(jù)程序的編寫范式:指令 + 數(shù)據(jù) = 程序    程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)

        過程式編程語言:

            以指令(算法)為中心,圍繞指令(算法)的實(shí)現(xiàn)設(shè)計(jì)數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)為指令服務(wù)

            算法或指令的實(shí)現(xiàn)形式:

                           順序執(zhí)行

                           選擇執(zhí)行

                           循環(huán)執(zhí)行

        對象式編程語言:

            以數(shù)據(jù)為中心,將數(shù)據(jù)實(shí)例化為類,圍繞著數(shù)據(jù)的需求來部署命令,

            類,屬性,方法

     低級語言:

       匯編語言

 

Shell腳本編程

過程式編程語言:解釋運(yùn)行的語言,依賴于外部程序文件的運(yùn)行語言

 Shell腳本是什么:

1. 純文本文檔

2. 根據(jù)用戶的需求來解決用戶問題的大量命令的組合體

3. “執(zhí)行冪等性”------任何命令多次執(zhí)行的結(jié)果是一致的

很多命令都不具備“執(zhí)行冪等性”,在shell腳本中需要使用大量的程序邏輯來判斷某個(gè)命令是否滿足其運(yùn)行條件,以避免在運(yùn)行過程中出現(xiàn)嚴(yán)重錯(cuò)誤

  

 Shell腳本中代碼內(nèi)容:

  1. 首行必須是shebang(解釋器路徑),必須占據(jù)絕對行首,在執(zhí)行時(shí),啟動(dòng)相應(yīng)的解釋器以解釋腳本內(nèi)諸多的命令,

  #!/bin/bash(首行樣本,前邊不能有空格)

  #!/bin/sh

  #!/usr/bin/python

  #!/usr/bin/per1

  2. shell腳本中,除了shebang之外,以#占據(jù)絕對行首的內(nèi)容,均為注釋行,解釋器會(huì)忽略這樣的內(nèi)容

  3. 解釋器會(huì)忽略腳本中所有的空白行

  4. 大量的命令和關(guān)鍵字(if,elsethen,whilefor,....

注意:shell腳本一旦運(yùn)行,是在當(dāng)前的shell中根據(jù)shebang的指示,開啟一個(gè)解釋器(子shell)來解散執(zhí)行代碼內(nèi)容,shell腳本的內(nèi)容是在一個(gè)子shell進(jìn)程中實(shí)現(xiàn)的,

 

        我們可以利用文本編輯工具來編寫shell腳本

             推薦使用:VIM

        約定下,腳本文件名的后綴為.sh,也可以不加

腳本的運(yùn)行方法:

  1. 為腳本文件賦予執(zhí)行權(quán)限,直接運(yùn)行此文件

注意:如果在執(zhí)行腳本時(shí),只寫腳本文件名不給出路徑的話,必須確保PATH變量中保存的路徑下,能找到該腳本文件,

  2. 直接使用解釋器運(yùn)行腳本,將腳本作為解釋器命令的參數(shù):

     Bash后邊加個(gè)絕對路徑


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI