简单的几个shell脚本八

while语句:

while CONDITION;do
     statment
done
进入循环:满足条件
退出循环:条件不满足

until语句:

until  CONDITION;do
      statment
done
 
进入循环:条件不满足
退出循环:满足条件

1、将输入的字符变为大写

#!/bin/bash

#

read -p "INPUT someting:" STRING
while [ $STRING != 'quit' ];do
     echo $STRING | tr 'a-z' 'A-Z'
     read -p  "Again Input someting:" STRING
done

#!/bin/bash

#
read -p "INPUT someting:" STRING
until [ $STRING = 'quit' ];do
     echo $STRING | tr 'a-z' 'A-Z'
     read -p  "Again Input someting:" STRING
done

2、检查haha用户是否登陆

检测haha用户是否登陆
#!/bin/bash
#
who |grep "haha" &> /dev/null
RETVAL=$?
until [ $RETVAL -eq 0 ];do
  echo "haha is not come"
  sleep 5
  who |grep "haha" &> /dev/null
  RETVAL=$?
done
echo "haha is logged in."


#!/bin/bash
#
until who |grep "haha" &> /dev/null; do
  echo "haha is not come"
  sleep 5
done
echo "haha is logged in."

3、for循环补充:
计算100以内整数的和:
#!/bin/bash
#
declare -i SUM=0
for I in {1..100};do
   let SUM+=$I
done
echo $SUM

declare -i SUM2=0
for ((J=1;J<=100;J++));do
  let  SUM2=$J
done
echo $SUM2

100以内所有偶数的和
#!/bin/bash
#
declare -i SUM2=0
for ((J=2;J<=100;J+=2));do
  let  SUM2=$J
done
echo $SUM2

100以内所有积数的和
#!/bin/bash
#
declare -i SUM2=0
for ((J=1;J<=100;J+=2));do
  let  SUM2=$J
done
echo $SUM2

4、写一个脚本划分3个分区并且格式化
#!/bin/bash
#
echo "Initial a disk..."
echo -e "\033[31mWarning:\033[0m"
fdisk -l 2> /dev/null |grep -o "^Disk /dev/[sh]d[a-z]"
read -p "Your choice:" PARTDISK

if [ $PARTDISK == 'quit' ];then
   echo "quit"
   exit 7
fi

until fdisk -l 2> /dev/null |grep -o "^Disk /dev/[sh]d[a-z]"|grep "^Disk $PARTDISK$" &> /dev/null;do
  read -p "Wrong option,Your choice aging:" PARTDISK
done

read -p "Will destroy all data,continue:" CHOICE

until [ $CHOICE == 'y' -o $CHOICE == 'n' ];do
     read -p "Will destroy all data,continue:" CHOICE
done

if [ $CHOICE == 'n' ];then
   echo "Quit."
   exit 9
else
for I in `mount |grep "/dev/sdb" |awk '{print $1}'`;do
  umount $I
  echo "$I umount ok."
done
dd if=/dev/zero of=$PARTDISK bs=512 count=1 &>/dev/null
sync
   echo 'n
p
1

+20M
n
p
2

+512M
n
p
3

+128M
t
3
82
w' |fdisk $PARTDISK &>/dev/null
fi
partx -a $PARTDISK &>/dev/null
sync
sleep 2
mkfs -j ${PARTDISK}1 &> /dev/null
mkfs -j ${PARTDISK}2 &> /dev/null
mkfs -j ${PARTDISK}3 &> /dev/null

5、压缩文件的脚本
#!/bin/bash
#
read -p "Three files:" FILE1 FILE2 FILE3
read -p "DEST:"
read -p "Compress[gzip|bzip|xz]:" COMP

case $COMP in
gzip)
 tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3
 ;;
bzip)
 tar -jcf ${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3
 ;;
xz)
 tar -cf ${DEST}.tar $FILE1 $FILE2 $FILE3
 xz ${DEST}.tar
 ;;
*)
 echo "Unknow options."
 exit 9
;;
esac

6、卸载磁盘
#/bin/bash
#
for I in `mount |grep "/dev/sdb" |awk '{print $1}'`;do
  umount $I
  echo "$I umount ok."
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值