2009年12月24日 星期四

Shell Script Programming

1.設計一個名為showme的script,藉由環境變數及一些Linux指令,使其可以顯示資訊如下:
$ showme
我是 <- login name

我的家在 <- home directory
我的家有下列這些東西:
<- ls home directory

我的殼是 <- shell name
這台電腦是 <- host name
我目前的工作目錄是 <- present woring directory
目前的工作目錄有下列這些東西:"
<- ls present woring directory

----


2.設計一個名為verbvar的script,利用read輸入一個簡單的英文動詞,在其前加入一個to印出原形,字尾加ing印出作為進行式,字尾加ed印出作為過去式。
$ verbvar
請輸一個動詞: work
原 形: to work
進行式: working
過去式: worked
----


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


4.設計一個名為mycal的script,使其可以接收三個數字參數,第一、三個參數為數字,第二個參數為運算子(+-*/其中之一)以多層的if計算其結果,並將其結果顯示出來,如果參數個數不夠或太多,就不執行運算,而顯示一段訊息,提示出正確的執行方式。如果中間的運算子是/,而第三個參數是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
$
----



1.
#!/bin/sh
echo "I am $LOGNAME"
echo "My home in the $HOME"

echo "My home have `ls -l $HOME`"

echo "My shell is $SHELL"

echo "Host Name is $HOSTNAME"
echo "Working Directory is `pwd`"
echo "Directory have `ls -l`"

2.
#!/bin/sh
echo -n "Please enter word : "
read word
echo "one --> $word"
echo "two --> ${word}ed"
echo "three-> ${word}ing"

3.
#!/bin/sh
if [ "$#" = "2" ]
then
      echo "$1 + $2 = $(($1+$2))"
else
      echo "Please enter Usage: ./addtwo number1 number2"
fi
exit 0


4.
#!/bin/sh
#if [ "$#" = "3" ] && [ "$2" = "+" ]
[ "$2" = "-"]
[ "$2" = "*" ]
[ "$2" = "/" ]
if [ "$#" = "3" ]
then
      case "$2" in
      "+")
             echo "$1 + $3 = $(($1+$3))"
       ;;
      "-")
            echo "$1 - $3 = $(($1-$3))"
       ;;
     "*")
           echo "$1 * $3 = $(($1*$3))"
       ;;
    "/")
        if [ "$3" = "0" ]
        then
               echo "number2 can't be zero"
        else
               echo "$1 / $3 = $(($1/$3))"
        fi
       ;;
     esac
else
echo "Please enter Usage: ./mycal number1 +,-,\*,/ number2"
fi
exit 0

沒有留言:

張貼留言