标签:linux下bash编程until语句及格式化硬盘分区等编写脚本(十)
linux下Bash编程until语句及格式化硬盘分区等编写脚本(十)
1.循环语句结构总结
1.1.while语句当条件满足时,进入循环语句
while 条件; do
语句
done
1.2.until语句当条件不满足时,进入循环语句
until 条件; do
语句
done
1.3.for 变量 in 列表; do
循环体
done
1.4.for (( 表达式1; 条件 ; 表达2 )); do
循环体
done
2.编写如下脚本,要求是:通过ping命令测试1.1.1.1到1.1.1.30之间的所有主机是否在线,
如果在线,就显示"$IP is up."
如果不在线,就显示"$IP is down."
#!/bin/bash
IP=1
until [ $IP -gt 30 ]; do
if ping -c 1 -W 1 1.1.1.$IP &> /dev/null; then
echo "1.1.1.$IP is up "
else
echo "1.1.1.$IP is down "
fi
IP=$[$IP+1]
done
3.写一个脚本(虚拟机新增一块硬盘便于测试脚本)
1、列出当前系统上所有的磁盘,让用户选择,如果选择quit则退出脚本;如果用户选择错误,就让用户重新选择;
2、当用户选择指定硬盘后,提示用户接下来的操作会删除所有硬盘数据,并请用户确认;如果用户选择y或Y就继续,n或N或exit就退出;否则,让用户重新选择;
3、抹除那块硬盘上的所有分区(提示,抹除所有分区后执行sync命令,并让脚本睡眠5秒钟后再分区);并为其创建三个主分区,第一个为200M,第二个为100G, 第三个为2G,且第三个为swap分区类型;(提示:将分区命令通过echo传送给fdisk即可实现)
#!/bin/bash
DEBUG=0
fdisk -l 2> /dev/null| grep "^Disk /dev/[sh]d[a-z]"|awk -F: ‘{print $1}‘ 显示当前所有硬盘
echo "quit"
read -p "Your CHOICE:hda|sda|sdb|quit.... " CHOICE
while [ $CHOICE != "quit" ]; do
case $CHOICE in
hda|sda|sdb)
DEBUG=1
DISK=$CHOICE 取出所选择的硬盘
CHOICE="quit";;
*)
read -p "Again,Your CHOICE:hda|sda|sdb|quit.... " CHOICE
;;
esac
done
if [ $DEBUG -eq 1 ]; then
read -p "You will earse all data: y|n|exit " OPTION
until [ $OPTION == "exit" ]; do
case $OPTION in
y|Y)
dd if=/dev/zero of=/dev/$DISK bs=512 count=1 删除指定硬盘分区
sync
sleep 5
echo "n 对指定硬盘开始重新分区
p
1
+200M
n
p
2
+200G
n
p
3
+2G
t
3
82
w" | fdisk /dev/$DISK
OPTION="exit";;
n|N)
exit 6 ;;
*)
read -p "Again,You will earse all data:y|n " OPTION ;;
esac
done
fi
本文出自 “夏维柳” 博客,请务必保留此出处http://willow.blog.51cto.com/6574604/1766620
linux下Bash编程until语句及格式化硬盘分区等编写脚本(十)
标签:linux下bash编程until语句及格式化硬盘分区等编写脚本(十)
原文地址:http://willow.blog.51cto.com/6574604/1766620