热门IT资讯网

脚本练习——格式化硬盘

发表于:2024-11-27 作者:热门IT资讯网编辑
编辑最后更新 2024年11月27日,题目要求:写一个脚本(前提:请为虚拟机新增一块硬盘,假设它为/dev/sdb),为指定的硬盘创建分区:列出当前系统上所有的磁盘,让用户选择,如果选择q则退出脚本,如果用户选择错误,则让用户重新选择当用

题目要求:

写一个脚本(前提:请为虚拟机新增一块硬盘,假设它为/dev/sdb),为指定的硬盘创建分区:

  1. 列出当前系统上所有的磁盘,让用户选择,如果选择q则退出脚本,如果用户选择错误,则让用户重新选择

  2. 当用户选择后,提醒用户确认接下来的操作可能会损坏数据,并请用户确认,如果用户选择y就继续,否则,让用户重新选择:

  3. 抹除那块硬盘上的所有分区(提示,抹除所有分区后执行sync命令,并让脚本睡眠3s后再分区;并为其创建三个主分区,第一个为20M,第二个为512M,第三个为128M,且第三个为swap分区类型;(提示将分区命令,echo给fdisk 即可实现)

题目分析:

1.如何创建分区?(fdisk mke2fs -j mount挂载

2.分析不同类型下的选择:

选择正确

其他选择

解决办法: 运用until、for分类


第一次脚本执行结果:



错误分析

利用bash -x ./314.sh ,一步一步分析步骤,发现是在创建磁盘分区时,给定设备号后,遗漏了"回车"操作。

还有就是,开始全局定义操作只用了 "CHOICE",导致后面partprobe、mke2fs、fdisk仍沿用了上一个操作"Y|N"


解决方法

将代码:2

+50M

改成 2


+50M

将前面选择硬盘的过程所定义的变量 'CHOICE',改为'DISK'。



最后附上纠正后,代码执行结果:




代码附上:



总结下今天的收获:

1:了解了创建一个磁盘分区的过程,也懂得了怎么移除一个新建的分区

2:熟悉了脚本执行中的逻辑关系

3:加深了对until、for循环的认识

4:学习了给vim编辑器内容显示行号。--:setnumber











0