Linux Shell

条件语句

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
您选择的爱好是抽烟

转载请指明出处!http://www.miselehe.com/article/view/128