这些练习是在本章中讨论的构造的实际应用。在编写脚本时,您可以使用不包含太多数据的测试目录进行测试。编写每个步骤,然后测试该部分代码,而不是一次编写所有内容。
编写一个脚本,询问用户的年龄。如果年龄等于或高于 16 岁,则打印消息说明该用户可以饮酒。如果用户的年龄低于 16 岁,则打印消息告诉用户在法律允许饮酒之前还需要等待多少年。
作为额外的练习,统计计算 18 岁以上的用户平均饮用了多少啤酒(每年 100 升),并将此信息打印给用户。
编写一个脚本,该脚本接受一个文件作为参数。使用here文档向用户呈现几个用于压缩文件的选项。可能的选择可以是 gzip、bzip2、compress 和 zip。
编写一个名为homebackup的脚本,该脚本自动化 tar,以便执行脚本的人员始终使用所需的选项(cvp)和备份目标目录(/var/backups)来备份他或她的主目录。实现以下功能
测试参数的数量。脚本应该在没有参数的情况下运行。如果存在任何参数,则在打印用法消息后退出。
确定backups目录是否有足够的可用空间来容纳备份。
询问用户是否需要完整备份或增量备份。如果用户还没有完整的备份文件,则打印消息说明将进行完整备份。如果是增量备份,则仅当完整备份不超过一周时才执行此操作。
使用任何压缩工具压缩备份。告知用户脚本正在执行此操作,因为它可能需要一些时间,在此期间,如果屏幕上没有出现任何输出,用户可能会开始担心。
打印消息,告知用户压缩备份的大小。
有关背景信息,请参阅 info tar 或 Linux 入门,第 9 章:“准备数据”。
编写一个名为simple-useradd.sh的脚本,该脚本向系统添加本地用户。此脚本应
仅接受一个参数,否则在打印用法消息后退出。
检查/etc/passwd并确定第一个空闲用户 ID。打印包含此 ID 的消息。
为此用户创建一个私有组,检查/etc/group文件。打印包含组 ID 的消息。
从操作员用户收集信息:描述此用户的注释、从 shell 列表中选择(测试可接受性,否则退出并打印消息)、此帐户的到期日期、新用户应成为成员的额外组。
使用获取的信息,向/etc/passwd, /etc/group和/etc/shadow添加一行;创建用户的主目录(具有正确的权限!);将用户添加到所需的辅助组。
将此用户的密码设置为默认已知字符串。
重写 第 7.2.1.4 节 中的脚本,使其从用户读取输入而不是从第一个参数获取输入。