linux-shell基础1:if、case、for、while循环学习
·
###
一、if 循环
1. 一般语法
# 单个括号
if [ 条件 ]; then
#结果1
else
#结果2
fi
或
if [ 条件 ]
then
#结果1
else
#结果2
fi
### 双方括号(推荐)
if [[ 条件 ]]; then
#结果1
else
#结果2
或
if [[ 条件 ]]
then
#结果1
else
#结果2
条件可以是比较、逻辑运算等,满足执行结果1,不满足执行结果2[]和[[]]内的条件前后必须有空格(如[ -f "$file" ]),否则报错。- [[]]相比[]性能较好,可以适配正则表达式
&&和||优先级高于[ ],需用括号分组:
2.常用的比较、逻辑运算符和例子
数字比较操作符:
-eq:等于-ne:不等于-gt:大于-lt:小于-ge:大于等于-le:小于等于
num=1
if [ $num -eq 1 ]; then
echo "num===1"
else
echo "num不是1"
fi
字符串比较符:
=:相等!=:不相等- -z 字符串内容为空则为真
- -n 字符串内容不为空则为真
name="lisj"
if [ $name ="lisj" ]; then
echo "名字正确"
else
echo "no"
fi
文件判断:
-f:判断文件是否存在且为普通文件-d:判断文件是否存在且为目录-e:判断文件是否存在- -s 文件是否为空
date_dir=test.txt
if [ -f $date_dir ]
then
echo "存在文件,无需创建"
if [ -s $date_dir ]
then
echo "存在值"
else
echo "null"
fi
else
echo "不存在目录"
fi
二、case循环
1.case循环基本语法
case $1 in
start)
command
;;
*)
command
esac
2.case循环例子
#!/bin/bash
echo -e "请选择1、2、3
1.name
2.passwd
3.tom
======="
read -p "输入你要的数字:" num
case $num in
1):
echo "选择为name";;
2):
echo "选择为passwd";;
*):
echo "选择未知";;
esac
三、for循环
1.for循环基本语法
for 变量名 in 循环次数
do
循环体
done
2.for循环例子
#!/bin/bash
for i in 1 2 3 4 5
do
echo "hello,word$i"
done
或者
#!/bin/bash
for i in {1..5}
do
echo "hello,word$i"
done
或者
#!/bin/bash
for i in $(seq 1 5)
do
echo "hello,word$i"
done
# 获取系统下的user
for user in $(cat /etc/passwd)
do
echo "$user "|awk -F":" '{print "user name is "$1}'
done
四、while循环
1.while循环基本语法
while [循环判断条件]
do
执行的命令
done
2.while循环例子
read -p "请输入数字1:" num
while [ "$num" != "1" ]
do
read -p "请输入数字:" num
done
五、循环控制(break、continue、exit)
1.循环控制-break
结束当前的循环,但会继续执行循环之后所有的代码
#!/bin/bash
for i in {1..3}
do
echo "$i"
break
echo "123"
done
echo "all is ok"
结果:

2.循环控制-continue
忽略本次循环剩余的代码,直接进入下次循环,直到循环结束
#!/bin/bash
for i in $(seq 1 3)
do
echo "$i"
continue
echo "456"
done
echo "all is ok"
结果:

3.循环控制-exit
遇到exit直接退出整个脚本
#!/bin/bash
for i in $(seq 1 3)
do
echo "$i"
exit
echo "12"
done
echo "all is ok"
结果:

六、实际应用
https://blog.csdn.net/j_0517/article/details/156850297?spm=1001.2014.3001.5502
更多推荐



所有评论(0)