论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
SqlServer
›
Shell脚本6 -- 条件判断if
Shell脚本6 -- 条件判断if
卖不甜枣
金牌会员
|
2024-11-22 14:43:14
|
显示全部楼层
|
阅读模式
楼主
主题
846
|
帖子
846
|
积分
2538
声明:
本文的学习内容来源于B站up主“泷羽sec”视频【shell编程(4)脚本与用户交互以及if条件判断】的公开分享,全部内容仅限于网络安全技术的交流学习,不涉及任何陵犯版权或其他侵权意图。如有任何侵权问题,请联系本人,我将立刻删除相干内容。
本文旨在资助网络安全爱好者提升自身安全技能,并严格遵守国家法律法规。任何人利用本文中的信息从事违法活动,均与本文作者和“泷羽sec”无关。请读者自觉遵纪守法,公道合法利用相干知识。
在 Shell 脚本中,if 语句是实现条件判断和分支逻辑的核心语法。通过利用 if,我们可以根据条件实行差别的操作,使脚本更加灵活和强盛。本文将先容 if 语句的根本语法、常见利用场景及注意事项。
1 根本语法
Shell 中的 if 语句的根本布局如下:
if 条件; then
命令1
命令2
fi
复制代码
常见的扩展情势包括:
if-else 语句:
if 条件; then
命令1
else
命令2
fi
复制代码
if-elif-else 语句:
if 条件1; then
命令1
elif 条件2; then
命令2
else
命令3
fi
复制代码
2 条件判断方式
在 if 中,条件判断紧张依赖 test 或 [] 下令。以下是常见的条件表达式:
2.1 文件条件
-e file:文件存在。
-d file:文件是目录。
-f file:文件是普通文件。
-s file:文件大小非零。
示例:
if [ -e "/etc/passwd" ]; then
echo "文件存在"
fi
复制代码
2.2 字符串条件
[ "$a" = "$b" ]:判断字符串是否相等。
[ -z "$a" ]:判断字符串是否为空。
示例:
if [ "$USER" = "root" ]; then
echo "当前用户是 root"
fi
复制代码
2.3 数值条件
-eq:等于。
-ne:不等于。
-gt:大于。
-lt:小于。
示例:
if [ "$1" -gt 10 ]; then
echo "参数大于 10"
fi
复制代码
2.4 逻辑运算符
[ 条件1 -a 条件2 ] 大概 [ 条件1 ] && [ 条件2 ]:逻辑与。
[ 条件1 -o 条件2 ] 大概 [ 条件1 ] || [ 条件2 ]:逻辑或。
! 条件:逻辑非。
示例:
if [ -z "$1" ] || [ -z "$2" ]; then
echo "请提供两个参数"
exit 1
fi
if [ "$1" -lt 10 -a "$2" -lt 10 ]; then
echo "参数1和参数2都小于10"
fi
复制代码
3 示例
3.2 示例 1:检查文件类型
#!/bin/bash
file="/etc/passwd"
if [ -f "$file" ]; then
echo "$file 是一个普通文件"
elif [ -d "$file" ]; then
echo "$file 是一个目录"
else
echo "$file 不存在或类型未知"
fi
复制代码
3.2 示例 2:判断用户输入
#!/bin/bash
read -p "请输入一个数字:" number
if [ "$number" -gt 0 ]; then
echo "这是一个正数"
elif [ "$number" -lt 0 ]; then
echo "这是一个负数"
else
echo "这是零"
fi
复制代码
3.2 示例 3:综合逻辑判断
#!/bin/bash
if [ $# -eq 2 ]; then
echo "参数数量正确"
if [ "$1" = "$2" ]; then
echo "两个参数相等"
else
echo "两个参数不相等"
fi
else
echo "请输入两个参数"
fi
复制代码
4 注意事项
条件语句的书写:
条件表达式中的变量应加引号,防止因空值导致语法错误。
[ 条件 ] 和条件内容之间必要有空格,否则会报错。
利用 test 下令:
test 下令和 [] 等价,可以直接利用,如:
if test -e "/etc/passwd"; then
echo "文件存在"
fi
复制代码
Shell 的兼容性问题:
在 bash 和 sh 中,if 的语法一致,但某些高级功能可能在差别版本中表现差别。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
卖不甜枣
金牌会员
这个人很懒什么都没写!
楼主热帖
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 ...
从0到1,实现Java控制台版本的ATM管理系 ...
2022保密教育线上培训考试 06 ...
一天吃透TCP面试八股文
开源技术交流丨一站式全自动化运维管家 ...
基于android的车辆违章停放执法移动APP ...
嵌入式软件工程师工作经验分享 ...
Windows安装mysql数据库
C语言牛客(NowCoder)刷题——基础语法 ...
用Java写一个PDF,Word文件转换工具 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表