判断语句:
if 判断条件
then
语句
[elif]
[语句]
...
[else
语句]
fi
#!/bin/bash
if [ $# -eq 0 ]
then
echo "Error"
echo "You can use this COMMAND like Command file_name"
exit 4
fi
TYPE=`file $1 | cut -d' ' -f2`
echo $1 is a $TYPE
case语句:
case 测试值 in
选项1)
...
;;
选项2)
...
;;
...
*)
...
esac
#!/bin/bash
# This is a simple test for case
#
case $# in
0)
echo "No option"
;;
1)
echo "You used $# option"
;;
2)
echo "You use $# options"
;;
*)
echo "Options is too ..."
esac
循环语句:
for循环:
for I in 参数可能性列表
do
循环体
done
#!/bin/bash
#
declare -i SUM=0;
declare -i I;
for I in {1..100}
do
let SUM+=$I;
done
echo "SUM = $SUM"
列表到的生成:
{m..n}: m到n的整数列表
seq 起始数 步径长度 结束数:默认步径长度为1,起始数为1,起始数、步径长度可以省略,结束数不能省略
while循环:
while 循环条件
do
循环体
dione
#!/bin/bash
#
declare -i SUM=0;
declare -i I=1;
while [ $I -le 100 ]
do
let SUM+=$I
let I++
done
echo "SUM = $SUM"
until循环:
until 循环条件
do
循环体
done
#!/bin/bash
#
echo "Enter username: "
read user
until who | grep "$user" &> /dev/null
do
sleep 30
done
echo "$user is on"
对于while循环,只要满足循环条件,就会继续循环
对于until循环,只要循环条件未成功结束,就会执行循环
实际上until循环比while循环用的少,不过如果是在等待某个事件的发生,它就很有用了
break: 用于退出循环
continue:用于提早开始下一段重复的循环
break和continue命令都接受可选的数值参数,可分别用来指出要中断或继续多少个被包含的循环。
shift:它用来处理命令行参数时,一次向左位移一位(或更多位),在执行shift时,原来的$1会消失,被$2取代,$2被
$3取代,以此类推,而$#的值也会逐次减少,shift还接受一个可选参数,也就是一次移动几位,默认为1