免费注册 查看新帖 |

Chinaunix

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

谁能帮我看看这个。。初学不知道怎么写好?! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-20 01:26 |只看该作者 |倒序浏览
麻烦朋友帮忙看看这个怎么写。。初学。。。不知道怎么下手。。。

给点思路也好。。。

把关键的点告诉就好了了。。

谢谢各位了



题目:
一、创建以下菜单程序:
USER: PC**            HOST: ********             DATE: **/10/2005
A: 创建子目录并复制文件
B: 文件权限测试
C: 文件字符转换
D: 文件总数统计
E: 文本文件行数统计
Q: 退出系统
—————————————————————————————————
  A:在用户家目录下创建名字为本人姓名的子目录,其存取权限为(drwxr-xr-x)。测试目录确实存在后将file1、file2两文件考入其中并分别显示两文件的内容。
  B:测试当前用户对系统中某文件是否有r、w、x的权限,输出测试结果。
  C:将file1、file2两文件中的小写字符转换为大写,逐一显示转换后的文件内容。
  D:统计某个目录下文件的总数,输出结果中包含该目录的名称及文件总数。
  E:统计系统中某文本文件的行数。

二、假设pc.txt文件中保存了三个班级的学生成绩,请编写一段shell程序计算每个班级的学生人数与平均分。
pc.txt文件内容如下:
Zhanghong:class1:75  
                wangliang:class2:68
                liming:class3:99
                dave:class2:83
                liuhai:class3:23
                fangyuan:class1:77
  注:以上各例均要输出当前执行的SHELL程序的名称。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-11-20 01:29 |只看该作者
作业要自己做!

论坛徽章:
0
3 [报告]
发表于 2005-11-20 01:34 |只看该作者
呵呵。被看出来了。。

但是有地方不明白。。可以简单指点一下吗?~

菜单搞定了
就是具体的内容还是不会。。不知道怎么写。。语法是什么。谢谢

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-11-20 12:18 |只看该作者
都是一些基本命令

论坛徽章:
0
5 [报告]
发表于 2005-11-20 12:53 |只看该作者
# Display menu
#
DATE= $( date +%D )
HOST='hostname -s'

while :
do
tput clear
echo "
=====================================================
    User:  $USER   Host:  $HOST   Date:  $DATE
=====================================================
       
        1: Create a directiry and copy a file
        2: Test a file with "chmod"
        3: Covert char...
        4: Total of files
        5: Total about lines in flies
        Q: Quit

=====================================================
    Please select :
"
read choice
echo
case $choice
in
  1) echo 'file1' > file1
     echo 'file2' > file2
     mkdir "$USER"
     chmod 700 "$USER"
     if [ -d /"$HOME"/"$USER" ]
     then
        echo "Now copy file1 file2 to $HOME/$USER/"
        mv file1 file2 $HOME/$USER
        if [ -e  $HOME/$USER/file1 -a -e $HOME/$USER/file2 ]
        then
           echo "Successful!"
        fi
     echo
     cat $HOME/$USER/file1
     cat $HOME/$USER/file2
     fi
     ;;
   2) echo 'Please type a location of file :'
      read URL
      ls -l $URL
      ;;
   3) #if [ -e $HOME/$USER/file1 -a -e $HOME/$USER/file2]
      #then
      echo "Now file1"
         tr '[a-z]' '[A-Z]' < $HOME/$USER/file1
      echo "Now file2"
         tr '[a-z]' '[A-Z]' < $HOME/$USER/file2
      #fi
      ;;
   4) echo "Please type a directiry :"
      read dir
      echo "dir"
      ls -l $dir | grep '^-' | wc -l
      ;;
   5) echo "Please type a file :"
      read file
      if [ -e $file ]
      then
         wc -l $file
      else
         echo "error"
      fi
      ;;
   Q|q) exit 0
esac

done


我做的第一个。。不知道怎么把时间和HOST名字加上。麻烦版主指点。。

还有第二个。不知道用什么方法+数字。。。

我用的是cut -d:f2,3

谢谢

论坛徽章:
0
6 [报告]
发表于 2005-11-21 00:49 |只看该作者
版主我大部分都自己做了。。剩下的就帮忙指点一下吧。。谢谢了

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2005-11-21 01:52 |只看该作者
第二是这样的吧
/home/lee#cat file
zhanghong:class1:75
wangliang:class2:68
liming:class3:99
dave:class2:83
liuhai:class3:23
fangyuan:class1:77
zhanghong:class1:75
wangliang:class2:68
liming:class3:99
dave:class2:83
liuhai:class3:23
fangyuan:class1:77

  1. /home/lee#\
  2. > cut -f2 -d':'<file|sort -u|xargs -i awk -F: '/{}/{n++;sum[$2]+=$3}
  3. > END{for(i in sum)printf "%s: %s,%s %.2f\n",i,n" persons",
  4. > "average:",sum[i]/n}' file
复制代码
class1: 4 persons,average: 76.00
class2: 4 persons,average: 75.50
class3: 4 persons,average: 61.00

[ 本帖最后由 寂寞烈火 于 2005-11-21 01:53 编辑 ]
wayy2008 该用户已被删除
8 [报告]
发表于 2005-11-21 10:43 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2005-11-21 11:58 |只看该作者
终于有回复了。。谢谢俩位 。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP