Shell腳本基礎與變量

Shell腳本基礎

  • shell編程:過程式、解釋執行
    • 編程語言的基本結構:
      • 各種系統命令的組合
      • 數據儲存:變量、數組
      • 表達式
      • 流程控制
    • shell腳本的shebang機制:
    • shebang必須在首行
    • 格式:#!/bin/bash


      </br>

  • 變量:在內存中分配空間用於暫存數據

    • 變量的類型:字符串、數值
    • 強類型語言:在使用變量之前必須聲明變量的類型,不允許隱式的類型轉換
    • 弱類型語言:使用前無需聲明,程序執行時將會進行隱式的數據類型轉換
      </br>
  • 局部變量:生效範圍爲當前shell進程;對其他shell進程無效(包括shell)

    • 變量賦值:
      name='value'
    • value的值:
      (1)字符串:
      name='str
      (2)引用其他變量:
      name="$PATH"
      (3)命令引用:
      name=`COMMAND`
  • 變量引用:
    ${name}、$name

    • " ":弱引用,""中的變量會被替換爲變量值
    • ' ':強引用,''中的變量不會被替換爲變量值,而保持原字符串

    • 顯示已定義的所有變量:
      set
    • 刪除變量:
      unset name
      </br></br>
  • 環境變量:生效範圍爲當前shell及其子進程

  • 環境變量聲明、賦值:
    export name='value'
    declare -x name='value'
  • 顯示所有環境變量:
    env
    export
    declare -x

  • 只讀變量:只能聲明,聲明後不能修改和刪除

    • 聲明只讀變量:
       readonly name
    • 查看只讀變量:
       readonly -p
  • 位置變量:在腳本中調用通過命令行傳遞給腳本的參數

        $1,$2,$...  :  對應第1、第2個參數
        $*      :      所有參數,全部參數合爲一個字符串
        $@    :      所有參數,全部參數爲獨立的字符串
        shift   :      每執行一次shift,位置變量的個數就會減一。 
        set  -- :     清空所有位置參數
  • 特殊變量:

    $0  :腳本自身
    $?  :返回上一條命令的執行狀態,0爲執行成功,非0爲失敗
    $#  :位置參數總數
    $$  : 當前進程的PID
  • exit [n]:自定義退出狀態碼

    • 注意:腳本中一旦遇到exit命令,腳本會立即終止;終止退出狀態取決於exit命令後面的數字
    • 注意:如果未給腳本指定退出狀態碼,整個腳本的退出狀態碼取決於腳本中執行的最後一條命令的狀態碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章