当前位置: 首页 > article >正文

泷羽sec-星河飞雪-shell-4

免责声明

学习视频来自 B 站up主泷羽sec,如涉及侵权马上删除文章。

笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。

泷羽sec官网:https://longyusec.com/

泷羽sec B站地址:https://space.bilibili.com/350329294

泷羽sec帮会:https://wiki.freebuf.com/front/societyFront?invitation_code=5a2005d9&society_id=239&source_data=2

文章目录

    • 字符串运算
      • 字符串运算符
      • 代码实现
        • 使用 `$`(变量引用)
        • 使用 `-z`(检查字符串长度是否为零)
        • 使用 `-n`(检查字符串长度是否非零)
        • 使用 `=`(检查两个字符串是否相等)
        • 使用 `!=`(检查两个字符串是否不相等)
        • 注意事项
    • 逻辑运算符
      • 逻辑运算符
        • 代码实现
          • 使用 `||`(逻辑或)
          • 使用 `&&`(逻辑与)
          • 使用 `-a`(逻辑与,用于测试表达式)
          • 使用 `-o`(逻辑或,用于测试表达式)
          • 注意事项

字符串运算

字符串运算符

运算符说明举例
=检测两个字符串是否相等,相等返回 true。[ $a = $b ]
!=检测两个字符串是否不相等,不相等返回 true。[ $a != $b ]
-z检测字符串长度是否为0,为0返回 true。[ -z $a ]
-n检测字符串长度是否不为 0,不为 0 返回 true。[ -n "$a" ]
$检测字符串是否不为空,不为空返回 true。[ $a ]

代码实现

在Shell编程中,字符串运算符用于比较和检查字符串的值。以下是使用字符串运算符 $(变量引用,不是直接作为运算符使用,但用于获取字符串值)、-z-n=!= 的示例代码:

使用 $(变量引用)

虽然 $ 不是直接用作运算符,但它是获取字符串值的基础。

#!/bin/bash

# 定义一个字符串变量
my_string="Hello, World!"

# 使用 $ 来引用变量的值
echo $my_string
使用 -z(检查字符串长度是否为零)

-z 运算符在字符串长度为零时返回真。

#!/bin/bash

# 定义一个空字符串变量
empty_string=""

# 检查字符串是否为空
if [ -z "$empty_string" ]; then
    echo "字符串是空的"
else
    echo "字符串不是空的"
fi
使用 -n(检查字符串长度是否非零)

-n 运算符在字符串长度非零时返回真。

#!/bin/bash

# 定义一个非空字符串变量
non_empty_string="Hello"

# 检查字符串是否非空
if [ -n "$non_empty_string" ]; then
    echo "字符串是非空的"
else
    echo "字符串是空的"
fi
使用 =(检查两个字符串是否相等)

= 运算符在两个字符串相等时返回真。注意,在 [ ] 中使用 = 时,等号两边通常需要有空格。

#!/bin/bash

# 定义两个字符串变量
string1="apple"
string2="apple"

# 检查两个字符串是否相等
if [ "$string1" = "$string2" ]; then
    echo "两个字符串相等"
else
    echo "两个字符串不相等"
fi
使用 !=(检查两个字符串是否不相等)

!= 运算符在两个字符串不相等时返回真。

#!/bin/bash

# 定义两个字符串变量
string1="apple"
string2="orange"

# 检查两个字符串是否不相等
if [ "$string1" != "$string2" ]; then
    echo "两个字符串不相等"
else
    echo "两个字符串相等"
fi
注意事项
  • 在使用 [ ] 时,确保运算符和字符串值之间有空格,例如 [ "$string1" = "$string2" ]
  • 字符串比较是区分大小写的,除非使用特定的工具或方法(如 tr 命令进行小写转换)来统一大小写。
  • 在实际脚本中,建议总是将变量引用放在双引号中,以防止由于变量未定义或为空而导致的语法错误。

逻辑运算符

逻辑运算符

运算符说明举例
&&逻辑的 AND[[ $a -lt 100 && $b -gt 100 ]]
||逻辑的 OR`[[$a -lt 100
-a逻辑的AND[ $a -lt 10 -a $b -gt 100]
-o逻辑的OR[ $a -lt 10 -o $b -gt 100]
代码实现

在Shell编程中,逻辑运算符用于根据条件执行命令。以下是使用逻辑运算符 ||&&-a-o 的示例代码:

使用 ||(逻辑或)

|| 运算符在第一个命令失败(返回非零值)时执行第二个命令。

#!/bin/bash

# 尝试执行一个不存在的命令,如果失败则打印消息
false || echo "第一个命令失败了"

# 尝试执行一个成功的命令,如果成功则不执行第二个命令
true || echo "这个不会打印,因为第一个命令成功了"
使用 &&(逻辑与)

&& 运算符在第一个命令成功(返回零值)时执行第二个命令。

#!/bin/bash

# 尝试执行一个成功的命令,如果成功则打印消息
true && echo "第一个命令成功了"

# 尝试执行一个失败的命令,如果失败则不执行第二个命令
false && echo "这个不会打印,因为第一个命令失败了"
使用 -a(逻辑与,用于测试表达式)

-a 运算符在 [ ]test 命令中用于逻辑与操作。注意,现代的Shell脚本更推荐使用 && 而不是 -a,因为 -a 只能在 [ ]test 命令中使用,而 && 更加直观和通用。

#!/bin/bash

# 检查两个条件是否都为真
if [ "$1" -gt 5 -a "$2" -lt 10 ]; then
    echo "第一个参数大于5且第二个参数小于10"
else
    echo "条件不满足"
fi
使用 -o(逻辑或,用于测试表达式)

-o 运算符在 [ ]test 命令中用于逻辑或操作。同样地,现代的Shell脚本更推荐使用 || 而不是 -o

#!/bin/bash

# 检查两个条件是否至少有一个为真
if [ "$1" -gt 10 -o "$2" -lt 5 ]; then
    echo "第一个参数大于10或第二个参数小于5"
else
    echo "条件不满足"
fi
注意事项
  1. -a-o 只能在 [ ]test 命令中使用,而 &&|| 可以在任何命令之间使用。
  2. 现代的Shell脚本更推荐使用 &&||,因为它们更加直观和通用。
  3. 在使用 [ ] 时,确保与 -a-o 一起使用的条件之间有空格,例如 [ "$1" -gt 5 -a "$2" -lt 10 ]

事项

  1. -a-o 只能在 [ ]test 命令中使用,而 &&|| 可以在任何命令之间使用。
  2. 现代的Shell脚本更推荐使用 &&||,因为它们更加直观和通用。
  3. 在使用 [ ] 时,确保与 -a-o 一起使用的条件之间有空格,例如 [ "$1" -gt 5 -a "$2" -lt 10 ]


http://www.kler.cn/a/406232.html

相关文章:

  • 解决.DS_Store 在项目一致无法排除,.gitignore里也不生效
  • 石油化工调度台的外观如何设计更有科技感
  • BugJson因为json格式问题OOM怎么办
  • el-select 和el-tree二次封装
  • Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复
  • 格式化输入输出【专辑优质版】
  • 如何利用Java爬虫获得1688店铺详情
  • MySQL数据库-视图的介绍和使用
  • MYSQL——多表查询、事务和索引
  • Firewall防火墙配置
  • 【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
  • Java之Spring MVC篇三
  • 深入探索JMeter逻辑控制器:构建复杂测试场景的利器
  • <OS 有关> ubuntu 24 不同版本介绍 安装 Vmware tools
  • 【大数据技术基础 | 实验十二】Hive实验:Hive分区
  • Linux的桌面
  • qt调试手段
  • redis的双重hash作用
  • JavaScript 中使用 POST 获取数据全解析
  • 物业管理系统的设计和实现
  • 重学SpringBoot3-Spring Retry实践
  • 哈希表(极速学习版)
  • Oracle 到 Elasticsearch 数据迁移同步
  • 深入探索:C++红黑树原理与实现
  • 16. 整数n内含有数字2的小游戏
  • 043 商品详情