Linux - shell编程 if else,for循环,while,case语句
if else语句
双分支if命令:
if 命令 --》当命令执行成功,就执行命令1,如果命令执行失败就执行命令2
then
命令1
else
命令2
fi
############################################################################
单分支if命令
if 命令 --》如果命令执行成功,就执行命令1,否则不执行
then 命令1
fi
练习:
.用户输入一个文件,我们去帮忙统计有多少行,输出给用户
如果文件不存在,则提醒用户
[root@localhost lianxi]# cat lines.sh
#! /bin/bash
read -p "请输入要统计行数文件的路径:" aname
# 对文件进行判断,是否存在
if [ -f $aname ]
# 如果存在就统计行数,并输出
then
num1=$(cat $aname | wc -l)
echo "$name 里面有 $num1 行内容。"
else
# 如果不存在就报错。
echo "文件不存在,请重新输入!"
fi
============================================================================
for循环
==================
for 变量名 in 集合
do
命令
done
变量名到集合里面去取东西,先去集合里面第一个东西,然后去执行命令,再回到集合取第二个东西,再执行命令,直到集合里面所有东西都取出来,当所有东西都取完的时候,for循环就结束了
==================
知识点:如何循环输出文件夹里面的所有文件?
[root@localhost lianxi]# cat forfile.sh
#! /bin/bash
for i in /lianxi/*
# 或者用ls的方法。
# for i in $(ls /lianxi)
do
echo "$i 在/lianxi目录下面。"
done
for循环在读取字符串的时候,以空格和tab键作为分隔符
############################################################################
#! /bin/bash
for i in $(echo welcome to san chuang for study)
do
echo 字符串的内容是:$i
done
字符串的内容是:welcome
字符串的内容是:to
字符串的内容是:san
字符串的内容是:chuang
字符串的内容是:for
字符串的内容是:study
############################################################################
#! /bin/bash
for i in $(seq 5)
do
echo 第$i次循环
done
第1次循环
第2次循环
第3次循环
第4次循环
第5次循环
while语句
==================
while 条件
do
done
=================
#! /bin/bash
i=1
while ((i <= 20))
do
echo -e 变量i的值为:\t$i
((i = i + 1))
sleep 1
done
死循环的几种写法
while:
while true
while [1]
#! /bin/bash
menu(){
echo ================
echo 1.增加用户并且设置密码
echo 2.删除用户
echo 3.查看用户
echo 4.退出
echo ================
read -p 请输入你的选择 option
}
while :
do
menu
case $option in
1)
echo 增加用户
;;
2)
echo 删除用户
;;
3)
echo 查询用户
;;
4)
exit
;;
*)
echo 请输入1-4的数字
esac
read -p 请按任意键继续
clear
done
case语句
python 里面没有case语句,c语言里面有switch case语句
case $command in
start)
s=$Starting $prog (via systemctl):
;;
stop)
s=$Stopping $prog (via systemctl):
#! /bin/bash
read -p 请输入你的字符,并按enter确认 : key
case $key in
[a-z]|[A-Z])
echo 您输入的是字母,
;;
[0-9])
echo 您输入的是数字。
;;
*)
echo 您输入的是 空格,功能键或其他控制字符
esac
############################################################################
case语句适合固定字符串的情况的匹配
例如 : 1 2 3 4
或者 stop start restart
如果是一段范围的数字情况,不是特别方便,使用if的多分支比较方便
0-59 --》 不及格 --》 [0-9]|[1-5][0-9]
60-69-->一般 --》 6[0-9]
70-89 --> 良好 --》 [78][0-9]
90-100 -->优秀 --》 9[0-9]|100
[0-9] 从0到9的数字里取任意一个
;; 相当于break
#! /bin/bash
case $1 in
start)
echo 启动程序
;;
stop)
echo 关闭程序
;;
restart|reload)
echo 重启程序
;;
*)
echo 请检查输入是否正确!
;;
esac
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通