2009年12月21日 星期一

Shell Script Programming III

2.設計一個名為manymaxmin的script,使其可以接收不固定的多個數字參數,顯示數字中最大的及最小的,如果都一樣大,則顯示都一樣大。

$ ./maxmin 12 18 9 32 24 13

max = 32

min = 9

$ ./maxmin 15 15 15 15 15 15

All Equal = 15
-----------------------------
#!/bin/sh

max=0

for x in $@

do
  if [ $x -gt $max ]
  then
     max=$x
  fi
done

min=9999999

for y in $@

do
  if [ $y -lt $min ]
  then
     min=$y
  fi
done

if [ $max -eq $min ]
then
      echo All Equal = $max
else
     echo Max = $max
     echo Min = $min
fi
exit 0
--------------------------------


3.設計一個名為createmyfiles的script,以迴圈配合touch指令,產生十個檔案,檔名分別為myprog1.c,myprog2.c,...,myprog10.c。

#!/bin/sh
rm myprog*

for ((x=1;x<=10;x++))
do
   touch myprog$x.c
done

exit 0
------------------------------


4.設計一個名為lastfiles的script,顯示目前目錄中最近被修改的n個檔案檔名。


$ ./lastfiles 5

a1.txt

a3.txt

...共5個


#!/bin/sh

ls -t | head -$1
---------------------------------

5.設計一個名為mvfiles的script,可以將所有副檔名為.c檔案,副檔名更名為.cpp,更名前後的副檔名均自命令列輸入。並將更名的結果顯示出來。

$ ./mvfiles .c .cpp


renamed myprog1.c to myprog1.cpp

....
#!/bin/sh

for file in *$1
do
  mv $file `basename $file $1`$2
  echo $file
done
exit 0

沒有留言:

張貼留言