next up previous contents
Next: 條件判斷 Up: Shell Scripts Previous: 腳本預設參數   Contents

實機練習題

  1. 共同要求:
    1. 在家目錄下建立 zzz 目錄。
    2. 切換工作目錄到 zzz,所有練習腳本皆存在此目錄。
    3. 腳本必須宣告執行命令 /bin/bash,且可執行。
  2. 寫一腳本 script1.sh,要求如下:
    1. 腳本版本宣告「日期 學號 第一版」,日期格式:yyyymmdd,學號不加 s。
    2. 列印 mysid=xxxxxxxx,其中 xxxxxxxx 是您的學號。
    3. 成功執行後回傳 0。
  3. 寫一腳本 script2.sh,要求如下:
    1. read 讀入一數字 nu。
    2. cat 將「12 34 nu 56 nu-3 nu*2」等數字逐行寫入檔案 script2.txt。
    3. awk 計算 script2.txt 中所有數字的平均 avg,並印列「averge=avg」。
  4. 寫一腳本 script3.sh,要求如下:
    1. read 讀入一串包含正負數字的字串。
    2. 將此字串轉換成相加運算式,再以 bc 計算結果。
    3. 例如輸入字串「2 -3 6 7」,輸出「2-3+6+7=12」。
  5. 寫一腳本 script4.sh,要求如下:
    1. read 讀入檔名 file。
    2. 以 source 讀取 file 中的變數設定。
    3. 輸出變數 abc 內容,若 abc 變數沒設定,則中斷程式 (提示 set -u)。
    4. 請同時測試 file 中有設定變數 abc 及沒設定的狀況。
  6. 承上題,寫一腳本 script5.sh,執行腳本時先印命令再輸出結果。
  7. 承上題,寫一腳本 script6.sh,腳本最後增加一行「echo abcde」,但不能輸出。
  8. 寫一腳本 script7.sh,使用執行時指定參數的預設變數,要求如下:
    1. 預設變數 $0 印出執行腳本名稱。
    2. 預設變數 $1 指定一個檔案名。
    3. 預設變數 $2 指定要寫入 $1 檔案的第一個數字。
    4. 預設變數 $3 指定要寫入 $1 檔案的第二個數字。
    5. 預設變數 $4 指定要寫入 $1 檔案的第三個數字。
    6. 在腳本中以 cat 將三個數字寫入到檔案 $1
    7. awk 計算檔案 $1 中的三個數字總和並輸出。


De-Yu Wang 2019-08-23