題目要求:
寫一個腳本(前提:請爲虛擬機新增一塊硬盤,假設它爲/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