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

posted @   JackLovey3  阅读(53)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示