shell腳本編程規範與變量

image.png



shell的作用:


image.png


  • image.png

  • image.png


環境:

平臺:VMware workstation 14

系統:CentOS Linux release 7.4.1708 (Core)


編寫第一個shell腳本:

  image.png   注: sh爲腳本格式   first爲腳本的名稱 

image.png  first腳本中的內容

image.png 給所有人加權


shell腳本的執行方式:

1 腳本的路徑

     絕對路徑 

           image.png

     相對路徑

               image.png

   注:必須腳本文件要有執行權限

          

2      sh 腳本文件路徑

      image.png

     注: 如果腳本文件在opt目錄下,  則: sh /opt/first.sh   /  先cd /opt  再 sh first.sh


3    source 腳本路徑

    image.png



注:2 -a 3可以不需要執行權限   1必須要



編寫第二個shell腳本:

shell腳本的構成:

 1  腳本聲明

  #!/bin/bash   聲明後面的命令可以通過此shell程序去解釋並執行

 2  註釋信息

   摘要,腳本作用,參數說明,工作效率,創建日期,作者,版本聲明,第幾次修改,每次返回的動態值的定義等

 3  可執行的命令語句

    注:所有特殊符號必須是英文模式輸入

實例1:新建文件



image.png

image.png

image.png

image.png

實例2:刪除文件

image.png

image.png

實例3:創建用戶

image.png

image.png

cat /etc/passwd

image.png

實例4: 創建指定容量的文件

image.png


image.png

實例5: 計劃任務

crontab -e

image.png

image.png

每天的下午1點半執行2.sh這個腳本一次



更友好的顯示腳本內容:

image.png

image.png




重定向與管道操作:

image.png

image.png


實例6:使用密碼文本文件 修改用戶密碼  


image.png

image.png

image.png

解:  創建一個密碼文件passwd.txt  密碼爲:123456

tom爲已有用戶,將密碼文件導給tom 實現重置tom的密碼爲123456


實例7:

image.png

image.png

將ls這條命令的輸出保存到 1.txt文件中


image.png

> 覆蓋原有的內容

>>  追加


實例8:

image.png


image.png

將標準輸出1.txt  標準錯誤輸出2.txt中



image.png

實例9:

image.png

image.png

image.png

image.png




shell變量的作用,類型

image.png


自定義變量

  1. 聲明變量不需要聲明類型

  2. 可以存儲不同類型內容 A=wa1

  3. 有時候使用變量時要明確變量類型

  4. 嚴格區分大小寫

  5. 等於號兩邊不允許出現空格

  6. 不能使用標點符號作爲變量名

  7. 不能使用bash裏面的關鍵字作爲變量名

  8. 首個字符必須是字母(a-z A-Z或_)


格式   變量名=變量值

查看變量:

     echo $變量名

     echo ${變量名}


通過echo進行一個輸出變量,其中$是引用變量的特殊字符(必須要使用$符號)


注:echo和調用的變量之間必須要有空格

       當需要一起調用多個變量時,以空格隔開

        當變量名和後面的字符混淆的時候,應使用{ }將變量名括起來


image.pngimage.png


變量賦值的特殊操作:

1 雙引號 ""

   當變量值之間有空格的時候,要使用""括起來

image.png

2 單引號 ' '

禁止引用變量值,將$符號當作普通字符來使用

image.png

3 反撇號 ``

與$() 效果一樣

作用:命令替換,提取命令執行的結果

image.png

image.png


image.png

優先執行反撇號裏面的內容,再執行其他

變量賦值的時候,如果想要賦值的是某條命令執行的結果,必須使用反撇號

缺點:反撇號部不是現嵌套命令替換操作,這時候使用$()來替換


4 交互式賦值 read

read 命令用於提示用戶輸入信息,從而實現簡單交互過程(輸入命令就是一個交互式過程)

image.png

多個變量名交互式賦值,賦值之間有空格,變量名也有空格

爲了更友好,通常使用-p 來提示信息

image.pngimage.png


5 設置變量的作用範圍

export  變量名 ...

export 變量名=變量值

作用:設置全局變量,所有子shell程序都可以使用此變量

image.png

image.png注:bash爲切換環境 export導爲全局變量


永久生效:

vi /etc/profile

export 變量名=變量值

source /etc/profile



整數變量的運算

expr 變量1 運算符 變量2 ...   

$(())          ++  --  **

 image.png

image.pngimage.png

    常用變量:

         +   -    \*    /   %




環境變量


配置文件:

全局

單用戶:




 常見的環境變量

PWD :顯示當前所在的工作目錄

USER :  顯示用戶名稱  可以查看當前登陸的用戶

HOME:  用戶的家目錄 顯示當前用戶的家目錄

LANG: 語言和字符集變量 

PATH: 命令搜索路徑  , 可以用tab鍵補全

PS1: 提示符變量

SHELL:shell程序


image.pngimage.png



位置變量

image.png

預定義變量

image.png



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章