1. 程式人生 > >【Linux】【Shell直譯器使用小結】

【Linux】【Shell直譯器使用小結】

  • 定義:一種終端直譯器,可以作為使用者與作業系統內部通訊的媒介,支援變數、引數、迴圈、分支等功能特性
  • Shell指令碼命令的工作方式:
    • 互動式(interactive):使用者輸入一條指令就立即執行;// 例如,在命令列視窗輸入  pwd 命令,該命令就被執行並顯示當前絕對路徑;
    • 批處理式(batch):使用者事先編寫一個Shell指令碼,Shell指令碼會一次性執行指令碼中諸多命令  // Shell指令碼檔案一般以.sh 為字尾名,以區別其它普通檔案;
  • Shell指令碼檔案主要包括以下三個部分:
    • 第一行指令碼宣告,告訴系統使用哪種Shell直譯器執行該指令碼
    • 第二行指令碼註釋,對指令碼的介紹
    • 後面是可執行語句
  • Shell指令碼執行示例(123.sh 是指令碼名稱,左邊是指令碼內容 右邊在終端執行):
  • Shell指令碼進階知識:
    1. 接收引數: $0表示指令碼名稱,$*所有引數值, $?顯示上一次命令執行的返回值, $k 對應第k個位置上的引數值; 引數是在執行指令碼的時候給出 如 "bash 123.sh  one two three"  該123.sh指令碼執行時會接收到3個引數,引數值分別為 one two three 在指令碼中可以通過"$k"使用相應的引數值;
    2. 測試語句: 格式 [ 條件表示式 ]  注意條件表示式左右兩邊各應有1個空格:包括檔案測試語句,邏輯測試語句,整數值比較語句,檔案測試語句 例如:

3. 流程控制語句(語法)

        • if語句: for語句:for 變數名 in 取值列表 do 命令序列 done
          • 單分支: if 條件測試語句 then 命令序列  fi
          • 雙分支: if 條件測試操作 then 命令序列1 else 命令序列2 fi
          • 多分支: if 條件測試操作1 then 命令序列1 elif 條件測試操作2 命令序列2 else 命令序列3 fi
        • while語句: while 條件測試操作 do 命令序列 done
        • case語句: case 變數值 in 模式1 命令序列1) ;; 模式2) 命令序列2 ;; ……  *) 預設命令序列 esac
  • 計劃任務服務程式:
    • 可以用at命令在指定日期執行某些指令  如在命令列輸入“at 20:00 11/14/2018”, 然後再後面的語句輸入“python 123.py”,再按“Ctrl+D”鍵結束編寫計劃任務; 系統會自動在2018年11月14日20:00 執行“python 123.py”命令
  • 參考書籍 《Linux就該這麼學》
  • 轉載請註明出處