shell的編程原理

1、編程介紹python

一、早期編程程序員

(1)驅動  硬件默認是不能用的;shell

(2)不一樣的廠家硬件設備之間須要進行指令溝通,咱們須要驅動程序來進行「翻譯」;編程

(3)更趨近於硬件開發的工程師須要學習「彙編語言」,而「彙編語言」被廠家所限制,C、C++的底層就是彙編語言數組

二、如今編程bash

   基於高級和超高級語言,使程序員可以更好的實現編程功能編程語言

三、編程語言的分類函數

根據服務的重心不一樣分爲:學習

(1)面向過程:側重於指令測試

(2)面向對象:側重於數據

根據程序翻譯成二進制指令的方式不一樣分爲:

(1)低級語言:彙編語言

(2)高級語言:根據編譯方式的不一樣分爲:

        (1)解釋型:逐行翻譯,逐行執行。例:shell、python、JAVA

        (2)編譯型:一次編譯,所有執行。例:C、C++、C#、JAVA

四、順序執行無邏輯關係

   循環執行  --  *for* while until

   選擇執行  --  分支 if case*

2、shell腳本語言的介紹

一、優缺點

  優勢:調用os(操做系統)的命令行,來實現全部功能;

  缺點:沒有庫調用(區分python)

二、Shell腳本包括:(1)*命令*(很是重要)

           (2)變量(全局變量、局部變量、本地變量、傳參)

           (3)邏輯關係

三、Shell的第一句話(必須寫)

       #!/bin/bash –定義腳本解釋器(廣泛認爲#爲註釋行,這裏特殊)

       #!/usr/bin/python

       /etc/s11hells   //查看當前系統支持的shell程序

       Echo $SHELL   // 查看當前會話的shell程序

       /etc/passwd   //制定了用戶默認支持的shell 程序(/sbin/nologin)

四、shell的執行

       (1)Bash命令來執行腳本

                     -n         來查看shell腳本的邏輯錯誤(注意:單詞寫錯無論)

                     -x          逐行顯示執行的腳本程序(方便排錯)

  (2)受權chmod  u+x filename.sh

               使用全路徑執行腳本        

示例:添加用戶

#!/bin/bash

if id $* &> /dev/null;then

  echo"這個用戶已經存在"

else

  for i in $*;do

    useradd $i

    echo "123456" | passwd --stdin "$i" &> /dev/null

    echo"用戶 $i 添加成功"

  done

  exit 0

fi

3、變量

一、分類

(1)環境變量

(2)局部變量:declare 命令 – 定義變量類型

(3)本地變量 :關鍵字必須指定local,local在函數中使用

二、變量類型:

  (1)數值型:

                 整型 int

                  浮點型 float double

                  布爾值 0 1(真 假) (TRUE FALSE)

        (2)字符串:

       普通字符及字符串

       數組

三、編程語言的分類:

              強類型語言 – 數值必須被定義,才能進行處理或運算

              弱類型語言 – 編程語言能夠自動識別變量類型

              【*多態*一個數據具備多個屬性,而最後使用的屬性取決於和它進行運算的數據】

四、傳參

                     $?   //上一條命令的執行狀態 0爭取 1-255 錯誤

                     $1 $2 …$(10)  //命令後面傳入腳本的數據,以空格爲分隔符

                     $#  // 統計傳參數量 ${$#}

                     $*  //表示全部的傳參,全部的傳參以字符串形式進行輸出

                     $@   // 表示全部的傳參,全部的傳參以列表的形式進行輸出

                   【工做中要對全部的傳參進行操做的時候,就要考慮$*和$@】

五、定義變量格式:

                     NAME=VALUE (一個等號叫賦值,兩個等號叫判斷)

                     咱們經過命令declare定義變量類型

                     Declare -I 整數 int() str()

                     Declare -a 數組

六、變量命名:

(1) 下劃線的方式指定變量名稱

(2) 駝峯命名方式

4、test文件測試、條件判斷

一、在腳本中,咱們須要語句分支(判斷),判斷就是使用test命令來實現。

    使用格式:

              (1)test [option] file

           (2)[條件語句]

      【用test判斷時加[],不用時不加[]】

二、常見的test選項

(1)比較選項

              -eq   等於

           -ne   不等於

              -gt   大於

              -ge  大於等於

              -lt    小於

              -le   小於等於

(2)判斷選項

              -f   判斷是否爲普通文件

              -d  判斷是否爲目錄文件

              -L  判斷是否爲連接文件

              -r -w -x   判斷文件是否具備 讀 寫 執行 權限

(3)關聯選項

              -o  或

              -a  與

              -!   非

三、字符串判斷

               =    判斷兩百年的字符串是否相同

               !=   不等於

              -z    判斷字符串是否存在,存在即爲真

              -n    和-z相反,存在爲假,不存在即爲真

5、邏輯運算

                與       &&:兩邊的命令都爲真,才爲真

                或        ||  :兩邊的命令,一真即爲真

                非        != :

              這個邏輯運算符,先後對接的都是單獨存在的命令;

                示例:[$? -eq 0]&& exit 0 || exit 1

6、算術運算

     let 1+1

    expr 1*1

    $[$1+10]

    $(($1/$2))

示例:用while循環計算100內整數相加的和

#!/bin/bash

declare -i i=0

declare -i sum=0

while [ $i -le 100 ];do

  sum+=$i

  let i++

done

echo $sum

相關文章
相關標籤/搜索