码迷,mamicode.com
首页 > 系统相关 > 详细

linux下Bash编程until语句及格式化硬盘分区等编写脚本(十)

时间:2016-04-22 16:51:48      阅读:310      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!