条件语句
if else 语句
语法:
if 条件 then 命令 elif 条件2 then 命令2 else 命令else fi
举例:
#!/bin/bash # 读取用户输入信息 read -p "请输入成绩:" score if [ $score -ge 0 -a $score -lt 60 ] then echo "不及格" elif [ $score -ge 60 -a $score -lt 70 ] then echo "及格" elif test $score -ge 70 -a $score -lt 80 then echo "中等" elif test $score -ge 80 -a $score -lt 90 then echo "良好" elif test $score -ge 90 -a $score -le 100 then echo "优秀" else echo "成绩信息错误" fi
test 语句
test 和 [] 相同, 后面增加支持[]的运算符表达式。
# test 1 == 1 -a 2 == 2 # echo $? 0 # test 1 -eq 1 # echo $? 0
不支持逻辑预算符&& ||,支持布尔预算符 -a -o !。数字比较运算符推荐使用 -eq 类支持中括号的运算符。
case 语句
语法:
case value in 1) 命令 ;; 2) 命令 ;; 3) 命令 ;; *) 命令 ;; esac
举例:
#!/bin/bash # 读取用户输入信息 read -n 1 -p "请输入性别(m/w):" gender case $gender in "m") echo "男性" ;; "w") echo "女性" ;; *) echo "信息错误" ;; esac
循环语句
while 语句
条件为真才会执行(: 或 true 会无限循环)。
语法:
while 条件 do 命令1 # continue; 跳过本次循环 # break; 跳出循环 done
举例:
#!/bin/bash read -p "您要几个苹果?:" num i=1 while [ $num -gt 0 ] do if [ $i -gt 10 ] then echo 最多给您10个苹果 break fi echo 这是第${i}个苹果! let num--; let i++; done
nutil 语句
条件为false才循环。
语法:
until 条件 do 命令 done
举例:
#!/bin/bash i=0 num=10 # 判断条件是 i 等于 num,返回假时执行 until [ $i -eq $num ] do let i++; echo '$i='$i '$num='$num done
for语句
方式一、
语法:
for var in item1 item2 … do 命令 done
举例:
#!/bin/bash for item in java net php do echo BookName:$item权威指南 done
方式二、
语法:
for var in {start..end} do 命令 done
start和end 必须为整数。
举例:
#!/bin/bash for item in {1..10} do if [ 0 -eq $(($item%2)) ] then echo 偶数:$item else echo 奇数:$item fi done
方式三、
语法:
for((i=start;i<=end;i++)) do 命令 done
举例:
#!/bin/bash for((i=1;i<=10;i++)) do if [ 0 -eq $(($i%2)) ] then echo 偶数:$i else echo 奇数:$i fi done
select语句
语法:
select var in menu1 menu2 do 命令 done
select是shell特有的循环语句,弹出菜单供用户选择,是无限循环的,只有遇到break或Ctrl+D组合才能结束循环。
一般和 case语句结合使用,case后执行break 结束无限循环。
举例:
#!/bin/bash echo 请选择爱好: select var in 抽烟 喝酒 烫头 do case $var in "抽烟") echo 您选择的爱好是$var break ;; "喝酒") echo 您选择的爱好是$var break ;; "烫头") echo 您选择的爱好是$var break ;; *) echo "信息错误" break ;; esac done
# sh select.sh 请选择爱好: 1) 抽烟 2) 喝酒 3) 烫头 #? 1 您选择的爱好是抽烟