介绍
在本挑战中,你将编写一个 Shell 脚本来检查特定的文件系统是否已挂载。你的脚本将接收一个文件系统名称(例如 /dev/vda1)作为参数。通过使用 df 命令,脚本将判断该文件系统当前是否已挂载。如果已挂载,脚本将报告其使用百分比和可用空间大小。如果未挂载,它将显示相应的错误消息。
检查已挂载文件系统的使用情况
在本挑战中,你的目标是创建一个脚本来报告给定文件系统的状态。该脚本将接受一个命令行参数,即要检查的文件系统名称。
任务
你的脚本必须执行以下操作:
- 接收一个代表文件系统的命令行参数(例如
df --output=source列出的源)。 - 检查提供的文件系统当前是否已挂载到系统上。
- 如果文件系统已挂载,打印一条消息,显示其使用百分比以及以千字节 (KB) 为单位的可用空间。
- 如果文件系统未挂载,或者提供的参数数量不正确,打印一条清晰的错误消息。
要求
你必须遵守以下要求:
- 脚本必须命名为
mount.sh并位于~/project目录中。 - 你必须使用
df命令来收集文件系统信息。 - 你的脚本应利用 Shell 数组和
for循环来处理文件系统数据。 - 脚本应处理参数数量不正确的情况。
示例
以下是你的脚本在处理一个有效的、已挂载的文件系统时应如何工作的示例。
labex:project/ $ bash mount.sh <mounted-filesystem>
Filesystem <mounted-filesystem> is 19% used with 85748032 KB free.
以下是针对未挂载文件系统的示例:
labex:project/ $ bash mount.sh /nonexistent
Error: Filesystem /nonexistent is not mounted.
注意: 示例中的使用百分比和可用空间值仅供参考。你的输出将反映你在环境中选择的已挂载文件系统的实际状态。
提示
- 你可以使用
df --output=source获取所有已挂载文件系统源的列表。 - 要使用命令的输出填充数组,可以使用语法
my_array=($(command))。 - 记得使用
$#检查传递给脚本的参数数量。
总结
在本挑战中,你成功创建了一个用于监控文件系统使用情况的 Shell 脚本。你学习了如何处理命令行参数、如何使用带有特定输出选项的 df 命令,以及如何使用命令输出填充数组。你还练习了使用 for 循环遍历数组,以查找并显示特定文件系统的信息。此挑战加强了你在 Shell 脚本编写、文本处理和系统信息检索方面的技能。



