next up previous contents
Next: 資料導向與管線處理 Up: Shell 變數使用 Previous: 變數的設定   Contents

實機練習題

  1. 共同要求:
    1. 在家目錄下建立 zzz 目錄。
    2. 切換工作目錄到 zzz,所有練習腳本皆存在此目錄。
    3. 腳本必須可執行。
  2. 練習題
    1. 寫一腳本 var1.sh,使用 read 從鍵盤輸入讀入一數字,並將其乘 2 後輸出到螢幕。
    2. 寫一腳本 var2.sh,建立一個 1 至 9 共 9 個元素的陣列,使用 read 從鍵盤輸入讀入一個 5 至 8 的數字 N ,並列出陣列第 2 元素至將第 N 個元素。
    3. 寫一腳本 var3.sh,取得根目錄 / 的檔案系統的 UUID,不含雙引號及其他資訊。腳本使用 sudo blkid 命令取得 UUID。
    4. 寫一腳本 var3-1.sh,使用 ifconfig eth0 | grep 192 取得網卡 IP 資訊存放在變數 ip,再刪除變數前後不要的字元,取得您的 IP,並輸出 myip=192.xxx.xxx.xxx。
    5. 下載檔案 gradelist.txt,寫一腳本 arr1.sh,將 gradelist.txt 所列的「名字」依序存成陣列 name,「成績」依序存成陣列 grade,並完成以下要求:
      1. 輸出 name 的第 2 個元素。
      2. 輸出 name 的第 1 到第 3 個元素。
      3. 輸出 grade 的第 3 個元素。
      4. 輸出 grade 的第 2 到最後一個元素。
      5. 輸出陣列 name 所有的元素值。
      6. 輸出陣列 grade 所有元素值。
      7. 輸出陣列 grade 的元素個數。
      8. 重新設定 grade 的第 3 個成績,增加 5 分,再次輸出第 3 個成績。
    6. 下載檔案 gradelist.txt,寫一腳本 dict1.sh,將 gradelist.txt 所列的「名字 成績」存在字典陣列 grades,並完成以下要求:
      1. 輸出 cora 的成績。
      2. 設定 linda 的成績 為 88 分。
      3. 輸出陣列 grades 所有的元素值。
      4. 輸出陣列 grades 所有的 keys。
      5. 輸出陣列 grades 的元素個數。
      6. 重新設定 cora 的成績,增加 5 分,再次輸出 cora 的成績。
    7. 寫一腳本 var4.sh,利用變數設定方法設定以下變數,並將變數 vb 輸出到螢幕。
      1. 變數 va:str 沒有設定,則 va 設定為 111;str 為空字串,則設定為空字串;其餘設定為 $str。
      2. 變數 vb:va 沒有設定或空字串,則將 222 輸出到 stderr;其餘設定為 $va。
    8. 寫一腳本 var4-1.sh,利用變數設定方法設定以下變數,並將變數 va 輸出到螢幕。變數 va:str 沒有設定或空字串時,變數 va 設定為空字串,str 有設定時 va 設定 444。
      執行腳本前使用 export 導出變數 str 給腳本 var4-1.sh,即可測試。


De-Yu Wang 2019-08-12