一个在加州大学念书的朋友shell script课的当堂限时设计题,要求学生1个半小时完成,无论完成多少,只要时间一到都要交。现在拿过来给大家探讨探讨,练练基本功。
PS:你可以谈思路,也可以实现你感兴趣的部分。只要你来凑个热闹,都是欢迎的。
写一个脚本名为groups,groups有2个命令行参数,执行以下功能:
首先熟悉 /ect/passwd文件里面包含的用户信息,再熟悉另一个文件 /etc/group,该文件包含了在系统上的groups信息,在这个文件的每一行有四个被冒号分开的字段:组名(group name),一个空的字段(以前存的是组密码),数字组ID,第四字段是这个组的用户序列,各用户间用逗号隔开,你的脚本将要报告每个用户属于哪个组(或者哪几个组)
为简化错误的处理,你可以假设,要么没有参数值,或者两个参数都给出,并且都有效。第一个命令行参数是密码文件(password file)的位置,如果不同于/ect/passwd文件的, 默认没有参数给出。第二个命令行参数是组文件位置,如果不同于/ect/group文件的, 默认没有参数给出。
这个报告包含密码文件(passwd file)每一个用户整行的信息。每一行必须输出user name,the name of the primary group, 和属于其他组的用户(这个列表也是用逗号隔开,按字母顺序排列。比如:
User: root Primary: root Secondary: adm,bin,daemon,disk,floppy,sys,wheel
你可以自己设计passwd和group文件调试,这里是里面的样本
passwd shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
group root::0:root,eggert,sync,shutdown,halt,operator
美国加州大学当堂限时设计题。
sh/bash/dash/ksh/zsh等Shell脚本
前往
- 公告/注意事项
- ↳ 新闻和通知
- ↳ 软件推荐
- 系统安装
- ↳ 教学和常见问答
- ↳ 系统安装和升级
- ↳ 启动和引导
- ↳ 网卡无线拨号
- ↳ 硬件与内核
- ↳ 笔记本及便携设备
- ↳ Ubuntu衍生版
- ↳ 其他类Unix OS发行版
- ↳ Debian发行版
- 配置美化
- ↳ 中文显示和输入法
- ↳ 个人配置文件存放点
- ↳ 软件文档翻译
- ↳ 窗口管理器及美化
- ↳ 桌面展示
- 软件使用
- ↳ 办公、图像、机械电子设计等
- ↳ Vim和Emacs
- ↳ 开源模板库
- ↳ 互联网相关软件
- ↳ 影音多媒体
- ↳ 游戏和模拟器
- ↳ 虚拟机和虚拟化
- ↳ Wine及其分支
- ↳ 其它类软件
- 服务器管理
- ↳ 服务器运维
- ↳ 云计算和容器(K8S/KVM/Docker/WSL等)
- ↳ Ubuntu VPS
- 程序设计与开发
- ↳ Shell脚本
- ↳ 软件/网站开发
- ↳ 内核及嵌入式开发
- ↳ Ubuntu编译和打包
- ↳ 开源小工具
- ↳ 挑战任务
- 感想与交流
- ↳ 深度PK版
- ↳ Ubuntu故事和感慨
- ↳ 同城交流
- ↳ 校园社团
- ↳ 港澳台校区
- ↳ 国外校区
- 站务区
- ↳ 论坛管理
- ↳ Ubuntu中文网上商店