Linux編寫Shell腳本

——《Linux就該這麼學》筆記
Shell腳本命令的工做方式有兩種
  交互式: 用戶每輸入一條命令就當即執行
  批處理: 由用戶事先編寫好一個完整的Shell腳本,Shell會一次性執行腳本中諸多的命令bash

一個簡單的腳本(hello.sh)
  #!/bin/bash
  #一個簡單的腳本
  pwd
  echo "Hello,World"測試

解釋:
  第一行: #! 用來告訴系統使用那種Shell解釋器來執行該腳本
  第二行: # 註釋
  第3、四行: 可執行的Linux命令crontab

Linux中對文件擴展名沒有要求,可是Shell腳本通常使用.sh後綴字符串

腳本執行方式
  1. bash 腳本名.sh
  2. ./腳本名.sh (須要增長執行權限)變量

接收用戶的參數
  Shell腳本使用$接收參數的變量,變量之間可使用空格間隔
  $n(n不能爲0): 對應着第n個位置的參數值
  固定值參數
    $0: 對應當前Shell腳本程序的名稱
    $#: 總共有幾個參數
    $*: 全部位置的參數值
    $?: 顯示上一次命令的執行返回值擴展

判斷用戶的參數
  測試語句格式: [ 條件表達式 ]
  注意: 條件表達式兩邊均應有一個空格
  條件測試語句分爲4中:
    文件測試語句
    邏輯測試語句
    整數值比較語句
    字符串比較語句
  文件測試語句即便用指定條件來判斷文件是否存在或權限是否知足等狀況的運算符,參數以下:
    -d: 測試文件是否爲目錄類型
    -e: 測試文件是否存在
    -f: 判斷是否爲通常文件
    -r: 測試當前用戶是否有權限讀取
    -w: 測試當前用戶是否有權限寫入
    -x: 測試當前用戶是否有權限執行
    文件測試語句返回值爲0表示爲真,非0表示爲假
  邏輯測試語句用於對測試結果進行邏輯分析,根據測試結果可實現不一樣的效果,有三種表示:
    "與"運算符: &&
    "或"運算符: ||
    "非"運算符: !
  整數值比較語句,只能對數字操做,不能將數字與字符串、文件等內容一塊兒操做,運算符以下:
    -eq: 是否相等
    -ne: 是否不等於
    -gt: 是否大於
    -lt: 是否小於
    -le: 是否等於或者小於
    -ge: 是否大於或者等於
    整數值比較語句返回值爲0表示爲真,非0表示爲假
  字符串比較語句,用於判斷測試字符串是否爲空值,或者兩個字符串是否相同,運算符以下:
    =: 比較字符串內容是否相同
    !=: 比較字符串內容是否不一樣
    -z: 判斷字符串內容是否爲空
    字符串比較語句返回值爲0表示爲真,非0表示爲假循環

流程控制語句
if條件測試語句
  分爲單分支結構、雙分支結構、多分支結構
  單分支結構
    if 條件測試操做
      then 命令序列
    fi
  雙分支機構
    if 條件測試操做
      then 命令序列1
    else 命令序列2
    fi
  多分支結構
    if 條件測試操做1
      then 命令序列1
    elif 條件測試操做2
      then 命令序列2
    ..........
    else 命令序列n
    fi權限

for條件循環語句
  容許腳本一次性讀取多個信息,而後逐一對信息進行操做處理
  語法格式
    for 變量名 in 取值列表
    do
      命令序列
    done
  for條件循環語句適用於循環次數肯定的狀況語法

 

while條件循環語句
  是一種讓腳本根據某些條件來重複執行命令的語句,每每用來執行不肯定最終執行次數的循環
  語法格式
    while 條件測試操做
    do
      命令序列
    done程序

 

case條件測試語句
  在多個範圍內匹配數據,若匹配成功則執行相關命令並結束整個條件測試,若是數據不在所列出的範圍內,則會去執行星號(*)中所定義的默認命令
  case語法格式
    case 變量值 in
    模式1)
      命令序列1
      ;;
    模式2)
      命令序列2
      ;;
    .........
    *)
      默認命令序列
    esac

 

計劃任務服務程序   計劃任務分爲一次性計劃任務與長期性計劃任務   一次性計劃任務只執行一次,通常用於臨時的工做需求     設置一次性計劃任務命令: at     格式: at 時間     取消一次性計劃任務命令: atrm     格式: atrm 任務序號     可使用 at -l 命令查看計劃任務列表   長期性計劃任務是指週期性地、有規律地執行某些具體的任務     建立、編輯計劃任務的命令: crontab -e     查看計劃任務列表的命令: crontab -l     刪除計劃任務的命令: crontab -r     crontab命令: 分 時 日 月 星期 命令     有些時間字段沒有設置,可使用星號(*)佔位     參數字段說明       分: 取值爲0-59的整數       時: 取值爲0-23的任意整數       日: 取值爲1-31的任意整數       月: 取值爲1-12的任意整數       星期: 取值爲0-7的任意整數,其中0與7均爲星期日       命令: 要執行的命令或程序腳本     時間和命令之間使用空格間隔     用逗號(,)來分別表示多個時間段     用減號(-)來表示一段連續的時間週期     用除號(/)來表示執行任務的間隔時間

相關文章
相關標籤/搜索