免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2244 | 回复: 11
打印 上一主题 下一主题

请大家帮帮我,看一下这个shell程序怎么编?急~我明天就要交了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-24 23:23 |只看该作者 |倒序浏览
编写一个shell程序,设计如下的菜单,并实现其功能。
----------------------------------------------------------
  Userxxx      Hostxxx   Date: xx/xx/xxxx
-----------------------------------------------------------
         1.List files in current directoy
         2.Use vi editor
         3.See who is on system
         4.find files have been accessed during 24hours
         Q.Exit  
-----------------------------------------------------------
         Your Choice[1,2,3,4,Q]

谢谢大家!

论坛徽章:
0
2 [报告]
发表于 2004-12-25 03:05 |只看该作者

请大家帮帮我,看一下这个shell程序怎么编?急~我明天就要交了

echo "  Userxxx Hostxxx Date: xx/xx/xxxx "
echo "  ----------------------------------------------------------- "
echo "  1.List files in current directoy "
echo "  2.Use vi editor "
echo "  3.See who is on system "
echo "  4.find files have been accessed during 24hours "
echo "  Q.Exit "
echo "  ----------------------------------------------------------- "
echo "  Your Choice[1,2,3,4,Q] "
while read i
do
        case $i in
        1 ) ls;;
        2 ) vi;;
        3 ) who;;
        4 ) find . -newerat '1 hour ago' -print;;
        [Qq] ) exit 0;;
        esac
done

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2004-12-25 18:16 |只看该作者

请大家帮帮我,看一下这个shell程序怎么编?急~我明天就要交了

把echo要显示的信息用HERE来做"好象"比较好吧?
cat <<!
1.List files in current directoy
2.Use vi editor
3.See who is on system
4.find files have been accessed during 24hours
Q.Exit
!
...

论坛徽章:
0
4 [报告]
发表于 2004-12-26 08:51 |只看该作者

请大家帮帮我,看一下这个shell程序怎么编?急~我明天就要交了

  

烈火兄,你们常说的这个here到底是什么东西?

给个介绍或者是链接吧

谢谢!

论坛徽章:
0
5 [报告]
发表于 2004-12-27 09:43 |只看该作者

请大家帮帮我,看一下这个shell程序怎么编?急~我明天就要交了

  1. #!/bin/sh
  2. colour()
  3. {
  4.         case $1 in
  5.                 black_green)echo -n "^[[40;32m";;
  6.                 black_yellow)echo -n "^[[40;33m";;
  7.                 black_white)echo -n "^[[40;37m";;
  8.                 black_cyan)echo -n "^[[40;36m";;
  9.                 black_red)echo -n "^[[40;31m";;
  10.                 red_yellow)echo -n "^[[41;33m";;
  11.                 *)
  12.                 echo "usage:xy [black_green|black_yellow|black_white|black_cyan|black_red|red_yellow]"
  13.                 return 1;;
  14.             esac
  15. }
  16. xy()
  17. {
  18.         _R=$1
  19.         _C=$2
  20.         _STR=$3
  21.         tput cup $_R $_C
  22.         echo -n $_STR
  23. }
  24. center()
  25. {
  26.         _ROW=$1
  27.         _STR=$2
  28.         COLS=`tput cols`
  29.         LEN=`echo $_STR|wc -c`
  30.         HOLD_COLS=`expr $COLS - $LEN`
  31.         NEW_COLS=`expr $HOLD_COLS / 2`
  32.         tput cup $_ROW $NEW_COLS
  33.         echo -n $_STR
  34. }
  35. get_char()
  36. {
  37.         SAVEDSTTY=`stty -g`
  38.         stty icanon
  39.         dd if=/dev/tty bs=1 count=1 2>/dev/null
  40.         stty -icanon
  41.         stty $SAVEDSTTY
  42. }
  43. cursor()
  44. {
  45.         _OPT=$1
  46.         case $_OPT in
  47.                 on)echo "^[[?25h";;
  48.                 off)echo "^[[?25l";;
  49.                 *)echo "Usage:cursor [on|off]"
  50.                 return 1
  51.                 ;;
  52.         esac
  53. }
  54. my_exit()
  55. {
  56.         cursor on
  57.         colour black_white
  58.         rm *.$$
  59.         exit 0
  60. }
  61. tput init
  62. trap "" 2 3 15
  63. while :
  64. do
  65.         tput clear
  66.         colour black_green
  67.         xy 3 1 "------------------------------------------------------"
  68.         xy 5 1 "User:`whoami`"
  69.         xy 5 38 "Host:`hostname`"
  70.         xy 5 68 "Date:`date`:"
  71.         xy 7 1 "------------------------------------------------------"
  72.         center 9 "1.List files in current directoy"
  73.         center 11 "2.Use vi editor "
  74.         center 13 "3.See who is on system "
  75.         center 15 "4.find files have been accessed during 24hours"
  76.         center 17 "5......."
  77.         center 19 "6......."
  78.         center 21 "7......."
  79.         center 23 "Q :    Quit system"
  80.         xy 25 1 "-------------------------------------------------------"
  81.         colour black_cyan
  82.         center 27 "Your Choice[1,2,3,4,Q]:"
  83.         read CHOICE
  84.         CHOICE=`get_char`
  85.         case $CHOICE in
  86.                 1)List files in current directoy;;       
  87.                 2)Use vi editor;;
  88.                 3)who;;
  89.                 4)find / -atime -1 -print;;
  90.                 q|q)my_exit;;
  91.                 *)center 30 "Unknown user response";;
  92.         esac
  93.         center 32 "Hit the return key to continue"
  94.         read DUMMY
  95. done
复制代码

bash/sh下测试通过,该脚本含有屏幕控制功能,有不对的地方,欢迎大家讨论

论坛徽章:
0
6 [报告]
发表于 2004-12-27 09:55 |只看该作者

请大家帮帮我,看一下这个shell程序怎么编?急~我明天就要交了

楼上这位大哥的我喜欢....
请问哪里有这些颜色的列表,man之类的...

btw:我这里显示不出来颜色,您给的这些代码....
我找找去....

论坛徽章:
0
7 [报告]
发表于 2004-12-27 10:01 |只看该作者

请大家帮帮我,看一下这个shell程序怎么编?急~我明天就要交了

#!/bin/sh
colour()
{
   case $1 in
                black_green)echo -n "^[[40;32m";;
                black_yellow)echo -n "^[[40;33m";;
                black_white)echo -n "^[[40;37m";;
                black_cyan)echo -n "^[[40;36m";;
                black_red)echo -n "^[[40;31m";;
                red_yellow)echo -n "^[[41;33m";;
                *)
                echo "usagey [black_green|black_yellow|black_white|black_cyan|black_red|red_yellow]"
                return 1;;
       esac
}
xy()
{
        _R=$1
        _C=$2
        _STR=$3
        tput cup $_R $_C
        echo -n $_STR
}
center()
{
        _ROW=$1
        _STR=$2
        COLS=`tput cols`
        LEN=`echo $_STR|wc -c`
        HOLD_COLS=`expr $COLS - $LEN`
        NEW_COLS=`expr $HOLD_COLS / 2`
        tput cup $_ROW $NEW_COLS
        echo -n $_STR
}
get_char()
{
   SAVEDSTTY=`stty -g`
   stty icanon
   dd if=/dev/tty bs=1 count=1 2>/dev/null
   stty -icanon
   stty $SAVEDSTTY
}
cursor()
{
   _OPT=$1
   case $_OPT in
      on)echo "^[[?25h";;
      off)echo "^[[?25l";;
      *)echo "Usage:cursor [on|off]"
      return 1
      ;;
   esac
}
my_exit()
{
   cursor on
   colour black_white
   rm *.$$
   exit 0
}
tput init
trap "" 2 3 15
while :
do
   tput clear
   colour black_green
   xy 3 1 "------------------------------------------------------"
   xy 5 1 "User:`whoami`"
   xy 5 38 "Host:`hostname`"
   xy 5 68 "Date:`date`:"
   xy 7 1 "------------------------------------------------------"
   center 9 "1.List files in current directoy"
   center 11 "2.Use vi editor "
   center 13 "3.See who is on system "
   center 15 "4.find files have been accessed during 24hours"
   center 17 "5......."
   center 19 "6......."
   center 21 "7......."
   center 23 "Q :    Quit system"
   xy 25 1 "-------------------------------------------------------"
   colour black_cyan
   center 27 "Your Choice[1,2,3,4,Q]:"
   read CHOICE
   CHOICE=`get_char`
   case $CHOICE in
      1)List files in current directoy;;   
      2)Use vi editor;;
      3)who;;
      4)find / -atime -1 -print;;
      q|q)my_exit;;
      *)center 30 "Unknown user response";;
   esac
   center 32 "Hit the return key to continue"
   read DUMMY
done

shit,你坑死我了。不知道为什么我运行你的命令,Q和q也退不出来,也看不到有颜色什么的。
用ps -ef |grep gaofeng看一下,吓死了
  1. gaofeng  1546  1540  0 09:27:36 pts/3    0:00 bash
  2. gaofeng  1558  1546  0 09:28:05 pts/3    0:00 /bin/sh ./test.sh
  3. gaofeng  1953  1558  0 09:29:00 pts/3    0:00 /bin/sh ./test.sh
  4. gaofeng  1956  1953  0 09:29:00 pts/3    0:00 dd if=/dev/tty bs=1 count=1
复制代码

那个test.sh就是你的脚本,看看最后一行是啥子?不会是想暗害我吧?咋能出来这个效果的来者?

论坛徽章:
0
8 [报告]
发表于 2004-12-27 10:39 |只看该作者

请大家帮帮我,看一下这个shell程序怎么编?急~我明天就要交了

颜色部分不能用复制的,请在copy过后把^[部分改成\033,
把trap "" 2 3 15注释掉后就能退出了

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2004-12-27 10:40 |只看该作者

请大家帮帮我,看一下这个shell程序怎么编?急~我明天就要交了

请问那些控制字符怎么输入

论坛徽章:
0
10 [报告]
发表于 2004-12-27 11:01 |只看该作者

请大家帮帮我,看一下这个shell程序怎么编?急~我明天就要交了

晕,还从来没有从solaris上见过彩色的呢?
echo也不支持-n选项。

这次一定要让我开开眼。
举个最简单的例子吧?
怎么让solaris显示彩色?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP