在Linux系统的/etc目录下有这样一个文件passwd,该文件里包含系统中所有用户信息的记录,记录里包含每个用户的如下信息:用户名、密码、用户ID、组ID、用户全名、用户主目录和用户登录所用的shell。
请设计一个脚本(shell)程序能实现增加、删除、查找和显示特定用户信息的功能。
你们可以通过创建一些UNIX/LINUXshell脚本文件来满足以上需求。
  可以用任意一个文本编辑器打开passwd文件,该文件里包含用冒号分隔开的字段组成的记录,如下所示:  root:x:0:0:root:/root:/bin/bash  zxj:x:500:500:zxj303:/home/zxj:/bin/bash  .  .  .  在主Shell脚本文件里(必须以menu命名)要有一个多操作选项的菜单以便用户从中选择。
在不同任务的中,这些操作能自动实现以下功能:在屏幕上显示当前所有用户的记录在屏幕上显示当前所有用户(经过格式化和排序的)的记录只在屏幕上显示用户名和用户ID只在屏幕上显示(经过格式化和排序的)用户名和用户ID查询并显示特定用户的记录往passwd文件里增加新的用户记录从passwd文件里删除某个用户记录  你可以使用UNIX/LINUX中一些比较简单的命令或命令组合来执行1、2、3、4、5的任务。
对于任务6和7,你需要编写单独的Shell脚本文件(必须分别命名为add和delete)并且在你的主脚本menu文件中调用这些脚本文件。
  可能你还需要查询一些Unix/Linux命令,比如awk,、sort、tr、cut、paste、sed、grep;
你也可能还需要查询其他的Unix/Linux命令。
  建议你在主目录下建立一个以xxxxxx(xxxxxx为学号)命名的目录,并且在本次作业中使用它作为工作目录。
主脚本文件中的菜单  在menu脚本文件里将创建如下菜单,菜单里包含供用户选择的一些操作。
用户信息主菜单打印当前所有记录打印当前所有记录(格式化后的)打印用户名和用户ID打印(格式化了的)用户名和用户ID查询特定记录增加新记录删除记录Q——退出你的选择是:(等待用户输入)  当用户做了选择且所选的操作完成之后,应再次显示主菜单以供用户做下一步选择。
你必须用while循环和case条件语句配合来完成此操作。
另外在显示主菜单前必须先清除用户屏幕。
在以下所有步骤中,当显示主菜单前都需要先清屏。
  在menu脚本文件的前面部分你首先要定义三个变量,这三个变量分别存放passwd、add、delete文件的文件名,并且能在所有涉及到passwd、add、delete文件的语句中使用他们。
比如,可以定义成:          record_file=passwd  在所有访问passwd文件的语句中,只要使用$record_file即可。
这样做的一个优点就是,如果以后你需要重新命名记录或者需要在不同的记录文件中使用你的脚本的话,你只需要修改以上一个语句而不须在所有有关的记录文件里逐一修改语句。
如下定义另外两个变量:  add_file=add  delete_file=delete  定义以上变量之后,你必须核对menu脚本文件,看看所需的文件(passwd、add、delete)是否准确存放在当前目录下。
如果其中任何一个不存在,你的脚本menu文件就必须显示以下信息,然后退出:  RequiredfiletheMissingFiledoesnotexist.(所需文件不存在)  比如,如果passwd文件不存在,就显示“Requiredfilepasswddoesnotexist.(所需文件记录不存在)”然后退出。
  在以上等待用户做出选择的菜单中,如果用户偶尔输入了一个代码而不是1、2、3、4、5、6、7或Q,就有信息提示“无效的代码,请按回车键继续``````”(务必保证光标停留在此信息行末尾而不是在下一行的开始处)。
等用户按了回车键之后,再次显示主菜单供用户做其他选择。
可以允许用户使用Q或q退出。
  在以上等待用户做出选择的菜单中,如果用户简单地按了回车键(而不是输代码)的话,就会出现信息“Selectionnotentered.PressEntertocontinue…"(务必保证光标停留在此信息行末尾而不是在下一行的开始处)。
等用户按了回车键之后,再次显示主菜单供用户做其他选择。
  当用户选择了第一项——打印当前所有用户记录  以下是当用户在主菜单中选择第一个选项后,menu脚本文件
2023/11/27 18:53:43 211KB Linux大作业
1
2048,照片查看,天气应用,即时通讯,阅读器,文本编辑器,邮件工具----------------------
2023/11/21 13:27:51 40.79MB swift-应用
1
基本信息原书名:WebGLProgrammingGuide:Interactive3DGraphicsProgrammingwithWebGL(OpenGL)原出版社:Addison-WesleyProfessional作者:(美)KouichiMatsudaRodgerLea(松田浩一,罗杰.李)译者:谢光磊出版社:电子工业出版社ISBN:9787121229428上架时间:2014-6-11出版日期:2014年6月开本:16开页码:470版次:1-1---------------------目录《WebGL编程指南》第1章WebGL概述1WebGL的优势3使用文本编辑器开发三维应用3轻松发布三维图形程序4充分利用浏览器的功能5学习和使用WebGL很简单5WebGL的起源5WebGL程序的结构6总结7第2章WebGL入门9Canvas是什么?10使用[canvas]标签11DrawRectangle.js13最短的WebGL程序:清空绘图区16HTML文件(HelloCanvas.html)16JavaScript程序(HelloCanvas.js)17用示例程序做实验22绘制一个点(版本1)22HelloPoint1.html24HelloPoint1.js24着色器是什么?25使用着色器的WebGL程序的结构27初始化着色器29顶点着色器31片元着色器33绘制操作34WebGL坐标系统35用示例程序做实验37绘制一个点(版本2)38使用attribute变量38示例程序(HelloPoint2.js)39获取attribute变量的存储位置41向attribute变量赋值42gl.vertexAttrib3f()的同族函数44用示例程序做实验45通过鼠标点击绘点46示例程序(ClickedPoints.js)47注册事件响应函数48响应鼠标点击事件50用示例程序做实验53改变点的颜色55示例程序(ColoredPoints.js)56uniform变量58获取uniform变量的存储地址59向uniform变量赋值60gl.uniform4f()的同族函数61总结62第3章绘制和变换三角形63绘制多个点64示例程序(MultiPoint.js)66使用缓冲区对象69创建缓冲区对象(gl.createBuffer())70绑定缓冲区(gl.bindBuffer())71向缓冲区对象中写入数据(gl.bufferData())72类型化数组74将缓冲区对象分配给attribute变量(gl.vertexAttribPointer())75开启attribute变量(gl.enableVertexAttribArray())77gl.drawArrays()的第2个和第3个参数78用示例程序做实验79HelloTriangle80示例程序(HelloTriangle.js)80基本图形82用示例程序做实验83HelloRectangle(HelloQuad)84用示例程序做实验85移动、旋转和缩放86平移87示例程序(TranslatedTriangle.js)88旋转91示例程序(RotatedTriangle.js)93变换矩阵:旋转97变换矩阵:平移1004×4的旋转矩阵101示例程序(RotatedTriangle_Matrix.js)102平移:相同的策略105变换矩阵:缩放106总结108第4章高级变换与动画基础109平移,然后旋转109矩阵变换库:cuon-matrix.js110示例程序(RotatedTriangle_Matrix4.js)111复合变换113示例程序(RotatedTranslatedTriangle.js)115用示例程序做实验117动画118动画基础119示例程序(RotatingTriangle.js)119反复调用绘制函数(tick())123按照指定的旋转角度绘制三角形(draw())123请求再次被调用(r
2023/11/21 1:55:21 59.95MB webgl
1
这个是editplus,非常好用的强大的文本编辑器,适合编程或者制作文档,轻量级的,占用内存小,用起来很方便
2023/11/20 23:51:08 1.53MB 编译器 editplus 好用的编译器
1
该Javaweb项目使用SpringBoot+Mybatis+thymeleaf开发。
前端使用bootstrap、html5、css3动画、jQuery、WangEditor富文本编辑器、Webuoloader和Base64处理图片上传、ajax异步处理表单数据,包括后台管理系统,使用redis处理用户访问量,楼主亲调不报错,有详细项目环境搭建介绍,仅供学习分享!
2023/11/18 17:33:37 6.32MB 源码分享 新闻网站 新手练习项目 java
1
文本编辑器源代码java源代码实验课写的作业
2023/11/18 5:14:37 19KB 文本编辑器源代码 java
1
实验四(多文档文本编辑器).zip
2023/11/14 6:04:14 1.22MB c# visual studio 文本编辑器
1
市面上有很多介绍C语言的书,但这是第一本将C语言以简洁而实用的方式介绍给读者的书籍。
用C语言进行编程不仅仅是在程序中使用正确的句法,编程的风格以及程序的调试在编写程序的过程中也占有相当大的篇幅,从而有助于程序的良好运行且易于维护。
本书不仅仅向你介绍编程的机制,同时也告诉你如何创建易于阅读、调试和更改的程序。
本书也强调了实用的原则。
例如在讨论C中运算优先级时,15种级别被归纳为下面两条原则:-先乘除,后加减;
-在所有该加括号的地方都加上括号第三版除介绍UNIX上的编程工具之外,还介绍了流行的Windows系统上集成开发环境(IntegratedDevelopmentEnvironments)。
第一部分基础11第一章什么是C13编程原理14C语言简史17C如何工作17如何学习C19第二章编程基础21程序从概念到运行21编写一个真正的程序22使用命令行编译器编程23使用集成开发环境(IDE)编程27获取UNIX帮助45获取集成开发环境帮助45集成开发环境菜单45编程练习48第三章风格49基础编码练习54编码盲从56缩进与编码格式56清晰57简明58小结59第四章基本定义与表达式60程序要素60程序的基本结构61简单表达式62变量和存储64变量定义65整型66赋值语句66printf函数68浮点型70浮点数与整数的除法运算70字符73答案74编程练习75第五章数组、修饰符与读取数字76数组76串78读取串81多维数组84读取数字86变量初始化88整型90浮点型92常量说明93十六进制与八进制常量93快捷运算符94副作用95++x或x++96更多的副作用问题97答案98编程练习99第六章条件和控制语句101if语句101else语句102怎样避免误用strcmp函数104循环语句104While语句105break语句107continue语句108随处赋值的副作用109答案111编程练习111第七章程序设计过程113设置115程序规范116代码设计116原型118Makefile119测试123调试124维护126修改126代码分析127注释程序128使用调试器128用文本编辑器浏览128增加注释128编程练习131第二部分简单程序设计133第八章更多的控制语句135for语句135switch语句139switch,break和continue145答案145编程练习147第九章变量作用域和函数149作用域和类149函数153无参数的函数157结构化程序设计158递归160答案161编程练习162第十章C预处理器163*define语句163条件编译170包含文件173带参数的宏174高级特征176小结176答案177编程练习180第十一章位运算181位运算符183与运算符(&)183按位或(\)186按位异或(^)187非运算符(~)187左移与右移运算符(<>)188设置、清除和检测位190位图图形194答案200编程练习201第十二章高级类型202结构202联合205typedef207枚举类型209强制类型转换210位字段或紧缩结构210结构数组212小结213编程练习213第十三章简单指针215函数自变量指针220常量指针222指针和数组224如何不使用指针229用指针分隔字符串231指针和结构235命令行参数236编程练习242答案242第十四章文件输入/输出245转换程序249二进制和ASCII码文件252行尾难题253二进制I/O255缓冲问题257非缓冲I/O258设计文件格式264答案266编程练习267第十五章调试和优化268调试268交互调试器280调试一个二分查找程序285实时运行错误297公开
2023/11/8 22:50:27 20.09MB C语言 编程
1
1具有菜单项2具有保存文件功能3具有帮助系统***********************************************/#include#include#include#include#include#include/*定义特殊键*/#defineESC0x011b#defineTAB0xf09#defineENTER0x1c0d#defineDEL0x5300#defineBACKSPACE0x0e08/*定义F1到F12*/#defineF10x3b00#defineF20x3c00#defineF30x3d00#defineF40x3e00/*定义控制键*/#defineRSHIFT0x01#defineLSHIFT0x02#defineCTRL0x04#defineALT0x08#defineSCROL_LOCK0x10
2023/11/8 2:46:38 16KB 文本编辑器,c源代码
1
文字计数器EpicodusProject2020年5月15日Julia·塞德曼(JuliaSeidman)描述一个使用TDD/BDD以及C#语言和.NETCore框架进行单元测试的项目。
控制台应用程序将接受用户输入的单词和句子,并返回单词出现的次数。
本课程旨在练习使用MSTest和行为驱动开发来创建自动测试方法。
设置/安装要求从GitHub克隆此存储库。
在您选择的文本编辑器中打开下载的目录。
(VSCode,Atom等)导航到WordCounter.Tests目录,然后在您的终端中运行“dotnetrestore”以安装依赖项。
导航回到WordCounter目录,然后在您的终端中运行“dotnetbuild”,然后运行“dotnetrun”以在浏览器中启动该应用程序。
已知错误在此更新时,没有已知的错误。
支持和联系方式这个应用程式有
2023/11/2 10:13:18 7KB C#
1
共 149 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡