Shell流程控制

8 篇文章 1 订阅

1、条件判断

1.条件判断语法格式

格式1: test 条件表达式
格式2: [ 条件表达式 ]  前后都有空格
格式3: [[ 条件表达式 ]]

2.条件判断相关参数

2.1 判断文件类型

判断参数		含义
-e			判断文件是否存在	
-f			判断文件是否存在并且是个普通文件
-d			判断文件是否存在并且是个目录
-s			判断文件是否存在并且是一个非空文件
-L			判断文件是否存在并且是一个软连接文件
-b			判断文件是否存在并且是一个设备文件
-S			判断文件是否存在并且是一个套接字文件
-c			判断文件是否存在并且是一个字符设备文件
-p 			判断文件是否存在并且是一个命名管道文件

2.2 判断文件权限

判断参数		含义
-r			当前用户对其是否可读
-w			当前用户对其是否可写
-x			当前用户对其是否可执行
-u   		是否有suid,高级权限冒险位
-g			是否有sgid,高级权限强制位

2.3 判读文件新旧

文件1 -nt 文件2		比较文件1是否比文件2新
文件1 -ot 文件2		比较文件1是否比文件2旧
文件1 -ef 文件2		比较是否位同一文件。

2.4 判断整数

-eq			相等
-ne			不等
-gt			大于
-lt			小于
-ge         大于等于
-le			小于等于

2.5 判断字符串

-z			判断是否为空字符串,字符串长度为0则成立
-n          判断是否为非空字符串,字符串长度不为0则成立
string1 = string2  判断字符串是否相等 (注意空格)
string1 != string2  判断字符串是否不等(注意空格)

2.6 多重条件判断

-a和&&	逻辑与
-o和||   逻辑或

类C风格的数值比较

= 表示赋值;==表示判断
[root@Hadoop01 myshell]# ((1==1));echo $?
0
[root@Hadoop01 myshell]# ((1!=1));echo $?
1
[root@Hadoop01 myshell]# ((1<=1));echo $?
0
[root@Hadoop01 myshell]# ((1>=1));echo $?
0
[root@Hadoop01 myshell]# ((a=123));echo $a
123

if语句
语法一:

if 条件
then
	命令1
	命令2
fi

单行写法:(一般用在命令行)
if [条件];then 命令; fi

语法二:

if 条件
then
	命令1
	命令2
else
	命令
fi

语法三:

if 条件1
then
	命令1
elif 条件2
then
	命令2
else
	命令
fi

case 语句

语法结构:
case 变量 in
	1)
		命令1
		;;
	2)
		命令2
		;;
	3)
		命令3
		;;
	...
	*)
		默认命令
		;;
esac
	

for循环语句

1.列表循环

for 变量 in {list}
do
	命令
done

2.不带列表循环

for 变量
do
	命令
done

3.类C风格的for循环

for((表达式1;表达式2;表达式3))
do
	命令
done

while循环

循环语句:
while 表达式
do
	命令
done

until循环

特点:条件为假进入循环,条件为真的时候退出循环
until 表达式
do
	命令
done

循环控制语句

continue  继续:continue下面的代码不再执行,重头开始。
break	  打断:跳出循环
exit	  直接退出程序
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值