脚本练习——格式化硬盘
发表于:2024-11-27 作者:热门IT资讯网编辑
编辑最后更新 2024年11月27日,题目要求:写一个脚本(前提:请为虚拟机新增一块硬盘,假设它为/dev/sdb),为指定的硬盘创建分区:列出当前系统上所有的磁盘,让用户选择,如果选择q则退出脚本,如果用户选择错误,则让用户重新选择当用
题目要求:
写一个脚本(前提:请为虚拟机新增一块硬盘,假设它为/dev/sdb),为指定的硬盘创建分区:
列出当前系统上所有的磁盘,让用户选择,如果选择q则退出脚本,如果用户选择错误,则让用户重新选择
当用户选择后,提醒用户确认接下来的操作可能会损坏数据,并请用户确认,如果用户选择y就继续,否则,让用户重新选择:
抹除那块硬盘上的所有分区(提示,抹除所有分区后执行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