shell编程1.4: 判断、分支与循环

1. 判断

判断语句一般放在[]中执行,注意[]里面左右需要各留一个空格:

[ $var -eq 0 ] # var == 0
[ $var -en 0 ] # var != 0

[ $var -gt 0 ] # var > 0
[ $var -ge 0 ] # var >= 0

[ $var -lt 0 ] # var < 0
[ $var -le 0 ] # var <= 0

[ $var -gt 0 -a $var -lt 1 ] # var > 0 && var < 1
[ $var -lt 0 -o $var -gt 1 ] # var < 0 || var > 1

string的比较与判断:

[[ $str1 == $str2 ]] # str1 == str2
[[ $str1 != $str2 ]] # str1 != str2

[[ $str1 > $str2 ]] # 根据字典序,判断str1 > str2
[[ $str1 < $str2 ]] # 根据字典序,判断str1 < str2

[[ -z $str1 ]] # 假如str为空则返回真
[[ -n $str1 ]] # 假如str非空则返回真

2. 分支

# if语句
if condition
then
commands
fi

#if ... else
if condition
then
  commands
elif condition
then
  commands
else
  commands
fi

注意ifelifcondition之间要有一个空格。简单的if语句也可以简写为:

[ condition ] && command  # 当condition为真时执行command
[ condition ] || command  # 当condition为假时执行command

3. 循环

for循环:

for item in %var
do 
  command
done

实例:

#! /bin/bash
data=(1,2,3,4)
echo ${data[*]}

OLD_IFS=$IFS
IFS=,
for x in ${data[*]}
do
    echo  $x
done
IFS=$OLD_IFS

上面的data声明了一个数组,${data[*]}代表取数组里面的所有元素。$IFS是一个环境变量,代表分隔符,我们的数组中分隔符是,,所以先将其置为,,等到循环执行完之后再复位


while循环:

while condition
do
commands
done

until循环:

until condition
do 
commands
done

你可能感兴趣的:(shell编程1.4: 判断、分支与循环)