Shell 编程(实例二)
创建一个脚本,为指定硬盘创建分区
1、列出当前系统所有磁盘,让用户选择,如果选择quit则退出脚本;如果选择错误,则重新选择
2、当用户选择完成后,询问是否继续
3、抹除选择磁盘上的分区,为其创建三个分区,每个分区100M
#!/bin/bash #获得当前主机识别磁盘
fdisk -l | grep "^Disk /dev/sd[ab]" | cut -d':' -f1
read -p "please chioce the disk you want to partation :" PARTDISK #如果输入quit则退出脚本
if [ $PARTDISK == 'quit' ]
then
exit
fi #判断用户输入磁盘是否存在
until fdisk -l | grep "^Disk /dev/sd[ab]" | cut -d':' -f1 | grep "^Disk $PARTDISK$" &> /dev/null
do
read -p "error , input again:" PARTDISK
done #是否确认执行
read -p "are you affirm to partation : (y/n)" CHOICE
until [ $CHOICE == 'y' -o $CHOICE == 'n' ]
do
read -p "are you affirm to partation : (y/n)" CHOICE
done if [ $CHOICE == 'n' ]
then
exit
else
#抹除磁盘上所有分区
dd if=/dev/zero of=$PARTDISK bs= count= &> /dev/null
#同步到磁盘
sync
#等待磁盘同步完成
sleep
#创建分区
echo 'n
p +100M
n
p +100M
n
p +100M
w' | fdisk $PARTDISK
sync
sleep partprobe $PARTDISK
mke2fs -j ${PARTDISK}
mke2fs -j ${PARTDISK}
mke2fs -j ${PARTDISK}
fi
总结:
1、循环条件体中如果是要获得命令执行是否成功,则可以直接输入命令
2、使用交互式命令在脚本中可以通过 echo ... | 命令 的方式执行
3、dd if=/dev/zero of=/dev/磁盘 通过改写MBR中分区表抹除磁盘分区
Shell 编程(实例二)的更多相关文章
- shell编程(二)
第三十二次课 shell编程(二) 目录 十五.shell中的函数 十六.shell中的数组 十七.告警系统需求分析 十八.告警系统主脚本 十九.告警系统配置文件 二十.告警系统监控项目 二十一.告警 ...
- Shell编程实例
一.简介 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更 ...
- shell编程练习(二): 笔试11-20
笔试练习(二): 11.写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录. [root@VM_0_5_centos test]# vi 11.sh [root@VM_0_5_cento ...
- shell编程基础(二): shell脚本语法之分支语句和循环语句
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...
- 【shell】shell编程(二)-运算符
上篇我们学会了如何使用及定义变量.按照尿性,一般接下来就该学基本数据类型的运算了. 没错,本篇就仍是这么俗套的来讲讲这无聊但又必学的基本数据类型的运算了. 基本数据类型运算 操作符 符号 语义 描述 ...
- shell编程基础二
一.流程控制 while循环:只要条件满足一直循环 read -p "请输入一个数字:" white_data while [ ${white_data} -lt 20 ] do ...
- 【转】linux shell编程实例总结
查找当前目录中所有大于500M的文件,把这些文件名写到一个文本文件中,并统计其个数 find ./ -size +500M -type f | tee file_list | wc 在目录/tmp下找 ...
- Linux下的shell编程(二)BY 四喜三顺
Ctrl + Alt + T 打开终端, $代表普通用户,#代表超级用户(root user)如: xiangqi@xiangqi ~$ root@xiangqi ~# ec ...
- Linux下shell编程实例
1. 推断一文件是不是块或字符设备文件.假设是将其复制到 /dev 文件夹下 read -p "input a file:" filename if [ -b $filename ...
- shell脚本实例二
练习题一:对已经存在的用户做密码的修改等操作 vim user_ctrl.sh ##进行如下编写 #!/bin/bashShow(){ read -p ...
随机推荐
- 【linux】安装docker
硬件Centos6.9 x86_64 1.查看centos内核,uname -r 目前,CentOS 仅发行版本中的内核支持 Docker. Docker 运行在 CentOS 7 上,要求系统为64 ...
- jar打包混淆上传全自动日志
第一步: Java的pom.xml文件中要加入导出lib的插件.如下: <build> <plugins> <plugin> <groupId>org. ...
- ubuntu16.04下sublime text 3之安装和配置
1.安装方法 1)使用ppa安装 sudo add-apt-repository ppa:webupd8team/sublime-text-3 sudo apt-get update sudo apt ...
- 学习笔记之Data analysis
Data analysis - Wikipedia https://en.wikipedia.org/wiki/Data_analysis Data analysis is a process of ...
- [C#]App.Config
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm. ...
- MFC (如何通过点击botton打开一个文件夹/文件)
1.建一个MFC的工程,类型为基于对话框.在工具箱里拖进去一个button按键,如下图. 2.双击button1按键就可以进入到点击button1后要执行操作的代码,编写如下代码实现网页/文件夹或者文 ...
- [UE4]Overlay容器:图片随着其他容器(比如Vertical Box)大小而同步改变
- keepalived主备节点都配置vip,vip切换异常案例分析
原文地址:http://blog.51cto.com/13599730/2161622 参考地址:https://blog.csdn.net/qq_14940627/article/details/7 ...
- centos6和centos7的防火墙的操作
1:centos6的两种方式 1.1:service方式 查看防火墙状态: [root@centos6 ~]# service iptables status iptables:未运行防火墙. 开启防 ...
- Android点赞音效播放
/** * 音效播放 */ private SoundPool mPool; /** * 音效id */ private int voiceID; voiceID = initSoundPool(); ...