1. 程式人生 > >shell腳本基礎----變量

shell腳本基礎----變量

實現 退出狀態 一個 ffffff image his tor 不能 字符串表

  • 1.1shell的定義

    1.命令的堆積
    2.特定的語法與特定的命令組成的文件

    執行腳本命令

    bash   test.sh   不需要添加執行權限,使用解釋器直接解釋
    sh    tesh.sh
    ./tesh.sh     相對路徑,需要添加執行權限
  • 1.2shell腳本基礎---變量

    變量:用一個固定的字符串表示不固定的內容
    變量名稱註意事項

    1.不能以數字開頭(包含字母、數字、下劃線)
    2.不能使用程序中的保留字(例如:if   for)
    3.不能跟系統中已有的環境變量重名(盡量不要全部使用大寫,盡量不要用‘_’下劃線開頭)
    4.見名知義

    變量類型

        "字符型"     例如:a=abc
        "數字型"       整型      浮點型,例如:a=1.1
        "布爾型“(是否)   true   false

    變量操作

    設置變量 
    引用變量

    $變量名
    ${變量名}

    **bash特性**
          "反斜杠    \   使反斜杠後面的一個變量變為字符串"
         "單引號      ’   轉義其中所有的變量為單純的字符串"
         "雙引號    ""    保留其中的變量屬性,不進行轉義處理"
         "反引號    ``     把其中放入命令執行後返回結果"
    撤銷變量(unset  a  作用範圍:僅在當前shell中有效)
    

    bash變量類型

    環境變量

    export     作用域為當前shell進程及其子進程
    

    技術分享圖片

    本地變量(局部變量)

    "Var_name=valuue"  本地變量,作用域為當前shell進程。對當前shell外的其他shell進程,包括當前shell的父shell,子shell進程均無效
    "Local  var_name=value"   局部變量,作用域為當前代碼段,常用於函數

    位置變量

    $1,$2    用於引用腳本的參數
    shirt      依此向前推進

    特殊變量(bash內置的,用來保存某些特殊數據的變量,也稱系統變量)

    "$#        是傳給腳本的參數的個數"
    "$0         是腳本本身的名字"
    "$!          是shell最後運行的後臺Process的PID"
    "$@        是傳給腳本的所有參數的列表"
    "$*          是以一個單字符串顯示所有向腳本傳遞的參數,與位置變量不同,參數可超過9個"
    "$$         是腳本運行的當前進程ID號 "
    "$?         是顯示上條命令的退出狀態,0表示沒有錯誤,其他表示有錯誤"
    

    bash內建環境變量

    "[root@yaoxiaorong ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    
    [root@yaoxiaorong ~]# echo $SHELL
    /bin/bash
    
    [root@yaoxiaorong ~]# echo $UID
    0
    
    [root@yaoxiaorong ~]# echo $HISTSIZE
    1000
    
    [root@yaoxiaorong ~]# echo $HOME
    /root
    [root@yaoxiaorong ~]# echo $PWD
    /root
    
    [root@yaoxiaorong ~]# echo $HISTFILE
    /root/.bash_history
    
    [root@yaoxiaorong ~]# echo $PS1
    [\u@\h \W]\$ "
    

    只讀變量

       readonly   不能修改值,不能銷毀,只能等shell進程

    腳本基礎
    定義:按實際需求,結合命令流程控制機制實現的源程序
    程序返回值

    程序執行的結果
    程序狀態返回代碼(0-255)
    0:正確執行
    1-255:錯誤執行,1、2、127系統預留,有特殊意義
    

    腳本測試

    bash -n test.sh     檢查腳本是否有語法錯誤
    bash  -x  test.sh    單步執行,檢查腳本錯在那裏
    

    寫腳本註意事項

    禁止將未成功執行過的代碼直接寫進腳本
    腳本中的命令一定要用絕對路徑

    shell算術運算

    A=3
    B=6
    let  C=$A+$B   表達式
    C=$[$A+$B]    表達式
    C=(($A+$B))    表達式
    C=` expr  $A   + $B `  算術運算表達式,表達式各操作及運算符之間要有空格,而且要使用命令引用   

    shell腳本基礎----變量