Linux之部分shell脚本练习(二)
while CONDITION;dostatement
done
进入循环:条件满足
退出循环:条件不满足
until CONDITION;do
statment
...
done
#!/bin/bash
#
read -p "Input something:" STRING
while[ $STRING != 'quit'];do
echo $STRING | tr 'a-z' 'A-Z'
read -p "Input something:" STRING
done
#!/bin/bash
#
read -p "Input something:" STRING
until [$STRING == 'quit'];do
echo $STRING | tr 'a-z' 'A-Z'
read -p "Input something:" STRING
done
#!/bin/bash
所以使用的while的时候都可以使用until。
#!/bin/bash
#
who | grep "hadoop" &>/dev/null
RETVAL=$?
until [$RETVAL -eq 0];do
echo "hadoop has not come"
sleep 5
who | grep "hadoop" &>/dev/null
RETVAL=$?
done
echo "hadoop is loggd in"
执行命令状态返回值可以直接引用,并且可以不用加引号。
如果条件部分是执行命令的话,就需要引号。
for循环
for 变量 in 列表;do
循环体
done
近C语言的写法
for((expr1;expr2;expr3)); do
循环体
done
#!/bin/bash
#
declare -i SUM=0
for I in {1..100};do
let SUM+=$I
done
echo $SUM
#!/bin/bash
#
declare -i SUM2=0
for((J=1; J /dv/null | grep -o "^Disk /dev/"
read -p "Your choice:" PARTDISK
if [ $PARTDISK == 'quit' ];then
echo "quit"
exit 7
fi
until fdisk -l 2> /dev/null | grep -o "^Disk /dev/" | grep "Disk $PARTDISK" &>/dv/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
dd if=/dev/zero of=$PARTDISK bs=512 count=1
sync
sleep 3
echo 'n
p
1
+20M
n
p
2
+512M
n
p
3
+128M
t
3
82
w' | fdisk $PARTDISK &>/dev/null
sync
sleep 2
partprobe $PARTDISK &>/dev/null
mke2fs -j ${PARTDISK} &>/dev/null
mke2fs -j ${PARTDISK}1 &>/dev/null
mke2fs -j ${PARTDISK}2 &>/dev/null
fi
页:
[1]