Shell脚本实战:用户问候与文件操作

需积分: 1 0 下载量 110 浏览量 更新于2024-06-16 收藏 82KB DOC 举报
"shell脚本练习题.doc" 在IT领域,Shell脚本是一种强大的自动化工具,特别是在Linux和Unix系统中,它允许用户通过编写简单的命令序列来执行一系列操作。以下是对给定文件中三个shell脚本练习题的详细解析: ### 练习一 这个练习的目标是读取`/etc/passwd`文件,对每个用户打印出问候语并显示他们的用户ID。两个答案都实现了这一目标,但方法略有不同。 答案一: 1. 首先,通过`file="/etc/passwd"`设定文件路径。 2. 使用`wc -l`计算文件行数,并通过`cut -d "" -f1`提取总数,存储到`LINES`变量中。 3. `for I in `seq 1 $LINES`;do`循环遍历每一行,从1到`LINES`。 4. 在循环内部,`head -I $file | tail -1`获取第`I`行的内容,然后使用`cut -d : -f 3,1`分别提取用户ID和用户名。 5. 打印问候语。 6. 循环结束后,输出用户总数。 答案二: 1. 同样设置`file=/etc/passwd`。 2. 使用`for I in $(cat $file)`遍历文件每一行。 3. 对每行,`echo "$I"|cut -d : -f 1,3`提取用户名和用户ID。 4. 打印问候语。 5. 更新计数器`num`,并在循环结束时显示用户总数。 ### 练习二 这个练习要求切换到`/var`目录,并向其中的每个文件或子目录打招呼,同时统计其数量。 答案: 1. `cd /var`改变当前工作目录到`/var`。 2. `for I in $(ls /var/*)`遍历`/var`下的所有文件和子目录。 3. 对每个元素,打印出问候语。 4. 使用计数器`num`记录文件和子目录的数量,每次迭代增加1。 5. 循环结束后,输出总数。 ### 练习三 这个练习旨在选取`/etc/passwd`文件的特定行,并将它们保存到另一个文件。 答案: 1. 设定`file="/etc/passwd"`。 2. 使用`for I in 2 4 6 10 13 15`循环读取指定行号。 3. `sed -n $I'p'$file`仅打印出这些行的内容。 4. 将这些行追加到`/tmp/mypasswd`文件中。 通过这些练习,我们可以看到shell脚本的基本结构,包括变量赋值、循环、条件判断、文件操作以及如何调用系统命令。这有助于提高系统管理和自动化任务的效率。在实际应用中,shell脚本可以用来实现各种复杂任务,例如系统监控、数据处理、定时任务等。
2017-03-30 上传