阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

if语句与shell运算

90次阅读
没有评论

共计 1586 个字符,预计需要花费 4 分钟才能阅读完成。

if 是一个条件判断语句,判断的前提是得有个条件。so,条件就显得格外重要了,if 中可以有哪些条件呢?接下来我们就来聊一聊 if 条件的问题。
我们在之前的课程中学习了 shell 的运算,有比较运算、逻辑运算、文件运算等,这些运算可以植入到 if 条件中吗?答案是肯定的,接下来我就给大家演示一下如何在 if 条件中植入 shell 运算条件

一、与文件存在与否的判断

-e	是否存在   不管是文件还是目录,只要存在,条件就成立
-f	是否为普通文件
-d	是否为目录
-S	socket
-p	pipe
-c	character
-b	block
-L	软 link
  • 文件权限相关的判断
-r	当前用户对其是否可读
-w	当前用户对其是否可写
-x	当前用户对其是否可执行
-u	是否有 suid
-g	是否 sgid
-k	是否有 t 位
  • 两个文件的比较判断
file1 -nt  file2	比较 file1 是否比 file2 新	
file1 -ot  file2 	比较 file1 是否比 file2 旧
file1 -ef  file2	比较是否为同一个文件,或者用于判断硬连接,是否指向同一个 inode
  • 整数之间的判断
-eq	相等
-ne	不等
-gt	大于
-lt	小于
-ge   大于等于
-le	小于等于


浮点比较运算
比较两个浮点数字的大小
给脚本两个浮点数字   返回他两的关系


#思路
1、获得两个浮点数字
2、处理为整形
3、比较
4、输出
  • 字符串之间的判断
-z  是否为空字符串   		字符串长度为 0,就成立
-n  是否为非空字符串    	只要字符串非空,就是成立
string1 == string2 		是否相等
string1 != string2 		不等


#用户登录验证

[root@zutuanxue ~]# cat if-6.sh 
#!/bin/bash
#1、交互式输入用户名 密码
read -p "user:" myuser
if [-z "$myuser"];then
	echo "用户名为空"
	exit 1
fi

#从外往里写
read -p "password:" mypw
if [-n "$mypw"];then
       #2、判断是否正确
         #2.1 判断用户名
	if [$myuser == "root"];then
	   #2.2 判断密码
	   if [$mypw == "abc-123"];then
		   echo "welcome root"
	   else
		   echo "密码错误"
		   exit 1
	   fi
        
 	else
     	 echo "用户名错误"
		exit 1
	fi		

else
	echo "密码不能为空"
	exit 1
fi
  • 多重条件判断
 逻辑判断符号:&&  	(and 逻辑与) 		两个条件同时满足,整个大条件为真
||	(or 逻辑或)		两个条件满足任意一个,整个大条件为真!非运算

#用户登录验证
[root@zutuanxue ~]# cat if-6.sh 
#!/bin/bash
#1、交互式输入用户名 密码
read -p "user:" myuser
if [-z "$myuser"];then
	echo "用户名为空"
	exit 1
fi

#从外往里写
read -p "password:" mypw
if [-n "$mypw"];then
       #2、判断是否正确
         #2.1 判断用户名
	#if [$myuser == "root"];then
	   #2.2 判断密码
	  # if [$mypw == "abc-123"];then
	#	   echo "welcome root"
	   #else
	#	   echo "密码错误"
	#	   exit 1
	#   fi
        #
 	#else
     	#	echo "用户名错误"
	#	exit 1
	#fi		

	if [$myuser == 'root'] && [$mypw == 'abc-123'];then
		echo "welcome root"
	else
		echo "用户名或密码错误"
		exit 1
	fi

else
	echo "密码不能为空"
	exit 1
fi



二、课后练习

 练习题 1、判断 /tmp/tyschool 目录,如果没有则创建它
练习题 2、判断是否有 /usr/bin/wget 命令,没有则安装他
练习题 3、判断当前用户是否为管理员,UID 为 0 或者为 root 都算管理员
练习题 4、打印物理内存使用率

三、学习视频

视频:if 与 shell 运算 01
视频:if 与 shell 运算 02

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-06-09发表,共计1586字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中