Shell流程控制语句
if else语句:
if ((score<60))
then
echo " 不及格"
elif ((score>=60 && score<100))
then
echo "及格"
else
echo "输入错误"
fi
单行写法:
if ((1==1)); then echo "成立";else echo "不成立";fi;
判断文件是否可写,输入的数据长度不为0:
#!/bin/bash
read -p "请输入文件全名:" filename
read -p "请输入数据:" data
if [ -w $filename -a -n $data ]
then
echo $data > $filename
echo "文件写入成功"
else
echo "文件写入失败"
fi
shell内置命令:test
功能与[ ]相同
整数比较
test 1 -eq 1
test 1 -eq 1 -a 1 \> 2
字符串比较
test "a" \> "b"
文件测试
test -e /root/agf.txt
case语句:
case 值 in
匹配模式1)
命令1
命令2
;;
匹配模式2)
命令1
命令2
;;
*)
命令1
命令2
;;
esac
#!/bin/bash
read -p "请输入一个0-7的数字" number
case $number in
1)
echo "星期一"
;;
2)
echo "星期二"
;;
3)
echo "星期三"
;;
4)
echo "星期四"
;;
5)
echo "星期五"
;;
6)
echo "星期六"
;;
7|0)
echo "星期日"
;;
*)
echo "输入数字无效"
;;
esac
while语句:
while 条件
do
命令1
命令2
done
#!/bin/bash
read -p "请输入一个循环的数字" number
i=0
while ((i<number))
do
let i++
if ((i==3))
then
echo "进入下一次循环"
continue;
fi
echo "hello${i}"
done
until语句:
条件为false(返回值为1)时候循环
until 条件
do
命令1
done
for语句:
循环方式1
for var in item1 item2 ... itemn
do
命令1
done
#!/bin/bash
for i in 1 3 5 6
do
echo "${i}"
done
循环方式2
for var in {start..end}
do
命令1
done
#!/bin/bash
for i in {1..10}
do
echo "${i}"
done
循环方式3
for ((i=start;i<=end;i++))
do
命令1
done
#!/bin/bash
for ((i=1;i<=10;i++))
do
echo "${i}"
done
select语句:
select是无限循环,只有遇到break语句,或者按下ctrl+d组合才能结束循环
select var in menu1 menu2 ...
do
命令
done
#!/bin/bash
echo "你的爱好是什么"
select hobby in "编程" "游戏" "篮球"
do
echo $hobby
break
done
echo "你的爱好是${hobby}"

浙公网安备 33010602011771号