if else语句
需求
提示"请输入你的考试成绩:" 接收用户输入一个成绩, 之后使用if else条件句判断
要求1: 小于 60 输出"不及格"
要求2: 大于等于70 并且 小于80 输出"中等"
要求3: 大于等于80 并且 小于90 输出"良好"
要求4: 大于等于90 并且 小于等于100 输出"优秀"
要求5: 以上不符合输出"成绩不合法"
代码
#!/bin/bash
read -p "请输入你的考试成绩:" score
if (( $score < 60 )); then
echo "不及格"
elif (( $score >= 60 && $score < 70 )); then
echo "及格"
elif (( $score >= 70 && $score < 80 )); then
echo "中等"
elif (( $score >= 80 && $score < 90 )); then
echo "良好"
elif (( $score >= 90 && $score <= 100 )); then
echo "优秀"
else
echo "成绩不合法"
fi
if语句退出状态码
Linux任何命令的的执行都会有一个退出状态,大多数命令状态0代表成功, 非0代表失败
$? 查看退出状态码
需求
提示输入"请输入文件全名: "和"请输入数据:" 并接收文件名与数据
使用逻辑运算符判断满足2 条件 : 文件需要具有可写权限 和 输入的数据长度不为0
满足以上2个条件 将用户输入的 数据 写入到指定的文件中去
代码
#!/bin/bash
read -p "请输入文件全名: " filename
read -p "请输入数据:" data
if [ -w $filename -a -n $data ]
then
echo $data
echo $data > $filename
echo "成功"
else
echo "失败"
fi
test命令
对整数比较测试
test 整数1 -options 整数2
options:-eq想等 -ne不等 -gt大于 -ge大于等于 -lt小于 -le小于等于
对字符串比较测试
test 变量1 -options 变量2
options:\> \< != = ==
对文件测试
test -options 文件路劲字符串
options:-w可写 -r可读 -e存在 -x执行 -s存在且至少有一个字符 -d目录?
case语句 多选择语句
case、in 和 esac 都是 Shell 关键字, esac就是case的反写在这里代表结束case
匹配模式: 可以是一个数字、一个字符串,甚至是一个简单正则表达式。
格式 | 说明 |
---|---|
* | 表示任意字符串。 |
[abc] | 表示 a、b、c 三个字符中的任意一个。[15ZH] 表示 1、5、Z、H 四个字符中的任意一个。 |
[m-n] | 表示从 m 到 n 的任意一个字符。[0-9] 表示任意一个数字,[0-9a-zA-Z] 表示字母或数字。 |
| | 表示多重选择,类似逻辑运算中的或运算。 abc | xyz 表示匹配字符串 "abc" 或者 "xyz"。 |
需求 实现输入0-7数字返回相应周几
代码
#!/bin/bash
read -p "请输入一个数字:" num
case $num in
1)
echo "周一"
;;
2)
echo "周二"
;;
3)
echo "周三"
;;
4)
echo "周四"
;;
5)
echo "周五"
;;
6)
echo "周六"
;;
7|0)
echo "周日"
;;
*)
echo "无效"
;;
esac
while语句
语法
while 条件
do
命令1
命令2
...
continue; # 结束当前这一次循环, 进入下一次循环
break; # 结束当前循环
done
until语句
循环结构语句,与while循环相反,条件为false会一直循环
until 条件
do
命令
done
for循环
语法1
for var in item1 item2 ... itemN
do
命令1
命令2
...
done
语法2 start end 整数
for var in {start..end}
do
命令
done
语法3
for((i=start;i<=end;i++))
do
命令
done
select语句
语法 常配合case in 使用
select var in menu1 menu2 ...
do
命令
done
#!/bin/bash
echo "你的爱好是什么?"
select hobby in "编程" "游戏" "篮球" "游泳"
do
echo $hobby
break
done
echo "你的爱好是:${hobby}"
#!/bin/bash
echo "你的爱好是什么"
select hobby in "编程" "游戏" "篮球" "游泳"
do
case $hobby in
"编程")
echo "编程,多敲代码"
break
;;
"游戏")
echo "少玩游戏"
break
;;
"篮球"|"游泳")
echo "运动有利健康"
break
;;
*)
echo "输入错误,请重新输入"
esac
done