問一個LINUX的script程式

程式之檔名為testadd

當使用者執行時,若參數不等於2個,請告知其執行語言為

testadd n1 n2

若參數等於兩個時,請要求使用者輸入n1+n2之解

如果使用者輸入的解是正確時,請輸出you are so smart!!

若使用者輸入之解是錯的

請輸出

you made a wrong answer!

這個程式要怎麼寫呀~~

搞的我好亂呀@@

1 Answer

Rating
  • 1 decade ago
    Favorite Answer

    沒有你想像中的難。

    一開始先判斷使用者輸入的參數個數,

    用$#內建變數就可以抓到。

    再來用if判斷$#是不是等於2,

    是的話就輸出叫使用者把兩數相加的答案的提示語

    (內建變數$1和$2就是輸入的兩個參數的字串)

    用read -p來讓user輸入

    然後再把兩$1+$2的答案和user輸入的比對,

    再輸出你要的字就行了。

    (用expr來作四則運算)

    我想問題是出在你不知怎麼抓這些內建變數還有相關的語法吧?

    邏輯問題應該是很簡單的。

    不過我想你一定還會遇到很多的問題,

    跟你提示一點,shell script是個非常龜毛的語言,

    常常不是邏輯有問題,而是「空格」的問題。

    有些寫法shell很挑剃,比如某個運算符號前後有空格和沒空格就完全不一樣,

    你自己體會一下囉!

    若有問題再問吧!

    (我在LINUX上比較偏好用perl寫程式,perl比shell script親切多了)

    Source(s): 自己
    • Login to reply the answers
Still have questions? Get your answers by asking now.