Issuu on Google+

1.設計一個名為 addtwo 的 script,使其可以接收兩個數字參數,並將其相加後 的結果顯示出來,如果參數個數不夠或太多, 就不執行運算,而顯示一段訊息,提示出正確的執行方式必須給兩個參數。 $ ./addtwo 12 6 sum = 18 $ $ ./addtwo 12 Usage: ./addtwo number1 number2 $


2.設計一個名為 mycal 的 script,使其可以接收三個數字參數,第一、三個參 數為數字,第二個參數為運算子(+-*/其中之一) 以多層的 if 或 case 計算其結果,並將其結果顯示出來,如果參數個數不夠或太 多,就不執行運算,而顯示一段訊息, 提示出正確的執行方式。如果中間的運算子是/,而第三個參數是 0,則顯示除 數不可為 0 $ ./mycal 12 + 3 result = 15 $ $ ./mycal 12 - 3 result = 9 $ $ ./mycal 12 \* 3 result = 36 $

# 注意:*為特殊符號,需加一倒斜線輸入

$ ./mycal 12 / 3 result = 4 $ $ ./mycal 12 / 0 無法計算:除數不可為 0 $


3.設計一個名為 getmax 的 script,使其可以接收兩個數字參數,將較大的數顯 示出來,如果都一樣大,則顯示都一樣大。 $ ./maxmin 18 15 max = 18 $ $ ./maxmin 15 15 Equals $


4.設計一個名為 checkfile 的 script,使其可以接收一個檔案名稱作為參數, 若此名稱不是目前工作目錄的檔案或目錄,則顯示此名稱不存在,如果是檔案, 則顯示其檔案內容,如果是一目錄則顯示此目錄內的清單。 $ ./checkfile 名稱


5.設計一個名為 newerfile 的 script,使其可以接收兩個檔案名稱作為參數, 並將日期較新的檔案名稱顯示出來。 $ ./newerfile file1.txt file2.txt file2.txt 較新


6.設計一個名為 avglen 的 script,使其可以接收一個檔案名稱(文字檔)作為參 數,計算此檔平均每一列有多少 bytes。 提示:使用 wc -l < 檔名; 用 man 查一下 wc 的用法 $ ./avglen yang.txt 平均每列: 348 bytes


7.設計一個名為 createtodayfile 的 script,以 touch 指令產生一個檔案,檔 名中含有今天的日期,例如 myfile20090706.txt。 date +%Y...., 其餘 date 的日期格式, 請以 man 指令查詢 $ ./createtodayfile


Shell Script - Homework 2