Shell脚本学习_运算符

news2024/9/23 23:31:24

目录

一、算数运算符

1、expr命令:

2、算数运算符介绍:

3、使用 ( ( ) ) 进行运算:

 4、bc命令:

1.bc中互动式的数学运算:

2.非互动式的管道运算:

3.非互动式的输入重定向运算:

二、比较运算符

 1、整数比较运算符:

2、字符串比较运算符:

3、[ [ ] ]  和  [ ] 的区别:

三、布尔运算符

四、逻辑运算符

五、文件测试运算符

1、linux系统文件类型介绍:

2、常用操作符介绍:


一、算数运算符

1、expr命令:

简介:

expr 是一款表达式计算工具,使用它能完成表达式的求值操作,expr被称为“求值表达式”,可以实现整数计算、还可以结合一些选项对字符串进行处理。

原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 命令和 expr命令,expr 最常用。
例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):

基本语法:

expr  运算符表达式   或者  result=`expr  运算符表达式 `

1.计算语法:
expr  算数运算符表达式

例如:
[zhangjiajia@localhost ~]$ expr \( 1 + 2 \) \* 3  #括号和乘法需要转义
9
[zhangjiajia@localhost ~]$ 


2.计算完后赋值语法:
result=`expr 1 + 2`

例如:
[zhangjiajia@localhost ~]$ a=`expr 1 + 3`
[zhangjiajia@localhost ~]$ echo "a的值为:$result"
a的值为:3
[zhangjiajia@localhost ~]$ echo "1+7=`expr 1 + 7`"
1+7=8
#注意:
#表达式和运算符之间要有空格,例如 1+3 是不对的,必须写成 1 + 3,这和我们之前学的大多数编程语言不同
#完整的表达式要被 ` ` 包含,这个字符不是常用的单引号,在 Esc 键下边。

3.计算字符串长度
expr length 字符串

例如:
[zhangjiajia@localhost ~]$ expr length "12345"
5

4.截取字符串
expr substr 字符串 start end

例如:
[zhangjiajia@localhost ~]$ expr substr "12345" 1 3
123

5.查找第一个字符出现的位置
expr index 字符串 需查找的字符

例如:
[zhangjiajia@localhost ~]$ expr index "12345" 5
5

2、算数运算符介绍:

假设变量a为1,变量b为2:

运算符例如
+  加法expr $a + $b   结果为3
-  减法expr $a - $b   结果为-1
* 乘法(需转义)expr $a \* $b    结果为2
/ 除法expr $a / $b   结果为0
% 取余expr $a % $b    结果为1
= 赋值a=$b   将b的值赋值给a

例如: 

yun.sh脚本文件内代码为:

[zhangjiajia@localhost ~]$ vim yun.sh
#!/bin/bash
read -p "请输入第一个数字" a
read -p "请输入第二个数字" b

echo "a的值为${a},b的值为${b}"
echo "a+b=`expr $a + $b`"
echo "a-b=`expr $a - $b`"
echo "a*b=`expr $a \* $b`"
echo "a/b=`expr $a / $b`"
echo "a%b=`expr $a % $b`"
if [ $a -eq $b ]
then
    echo "$a -eq $b : a 等于 b"
else
    echo "$a -eq $b : a 不等于 b"
fi

运算结果为: 

[zhangjiajia@localhost ~]$ sh yun.sh
请输入第一个数字1
请输入第二个数字3
a的值为1,b的值为3
a+b=4
a-b=-2
a*b=3
a/b=0
a%b=1
1 -eq 2 : a 不等于 b

3、使用 ( ( ) ) 进行运算:

介绍:

和expr一样也是只能对整数进行运算。

但是,更推荐使用(( )) 来进行运算(不需要转义,可以进行多表达式同时运算)

例如:

[zhangjiajia@localhost ~]$ vim 1.sh

#!/bin/bash
#基本写法
((a=1+6))
((b=a-1))
((c=a+b))
echo "a=${a},b=${b},c=${c}"

#赋值写法
a=$((1+6))
b=$((a-1))
c=$((a+b))
echo "a=${a},b=${b},c=${c}"
echo "1+6=$((1+6))"

#多个表达式写法
((a=1+6,b=a-1,c=a+b))
echo "a=${a},b=${b},c=${c}"

结果为:

[zhangjiajia@localhost ~]$ sh 1.sh
a=7,b=6,c=13
a=7,b=6,c=13
1+6=7
a=7,b=6,c=13

 4、bc命令:

1.bc中互动式的数学运算:

介绍:

bc命令支持浮点型,支持语句的交互式执行。可以进行进制转换bc从标准输入中读取。所有代码在读取时执行。如果文件中包含停止处理器的命令,bc将永远不会从标准输入中读取。

支持的运算包括:+ 加法 - 减法 * 乘法 / 除法 ^ 指数 % 余数。

语法:bc  [ 选项 ]  [ 参数 ]

bc命令内置变量介绍:

变量名作用
scale指定精度,也即小数点后的位数,对计算
ibase指定输入的数字的进制,默认为十进制。
obase指定输出的数字的进制,默认为十进制。
last或者.last或者.获取最近计算打印结果的数字

 bc命令内置数学函数介绍:

函数名作用
s(x)计算X的正弦值,x是弧度值。
c(x)计算X的余弦值,x是弧度值。
a(x)计算x的反正切值,返回弧度值。
l(x)计算x的自然对数。
e(x)求e的x次方。.
j(n,x)贝塞尔函数,计算从n到x的阶数。

 基本用法:

[zhangjiajia@localhost ~]$ bc -q
1+2
3

11.2+33.3
44.5

(1+1)*2
4

10/3
3

scale=2;
10/3
3.33

scale=4;
10/3
3.3333

obase=8;
100
144

[zhangjiajia@localhost ~]$ bc -q
ibase=2;obase=10;
queit
0
quit
[zhangjiajia@localhost ~]$ bc -q
ibase=2;111
7
quit

[zhangjiajia@localhost ~]$ bc -lq
e(2)
7.38905609893065022723


[zhangjiajia@localhost ~]$ vim 2.txt
14567+3456
12345*3456/453
76345.1432+4567345324/3246567

#对文件内的数字进行运算
[zhangjiajia@localhost ~]$ bc -q 2.txt
18023
94181
77751.1432

2.非互动式的管道运算:

介绍:

借助管道使用bc计算器语法,直接进行bc的表达式计算输出

语法:

echo "expression"  | bc [ 选项 ]

注意:

expression必须符合bc命令要求的公式

expression表达式里面可以引用shell变量

例如:Shell变量a=2,在表达式里面引用的语法为:$a

 例如:

[zhangjiajia@localhost ~]$ echo "1+1" | bc 
2
[zhangjiajia@localhost ~]$ echo "10/3" | bc
3

[zhangjiajia@localhost ~]$ echo "scale=3;10/3" | bc
3.333

[zhangjiajia@localhost ~]$ echo "e(2)" | bc -l
7.38905609893065022723

[zhangjiajia@localhost ~]$ echo "obase=2;7" | bc -l
111

[zhangjiajia@localhost ~]$ a=2
[zhangjiajia@localhost ~]$ echo "b=$a+2;b" | bc
4

#两种赋值方法
[zhangjiajia@localhost ~]$ a=`echo "b=$a+2;b" | bc`
[zhangjiajia@localhost ~]$ echo $a
4
[zhangjiajia@localhost ~]$ a=$(echo "b=$a+2;b" | bc)
[zhangjiajia@localhost ~]$ echo $a
6

3.非互动式的输入重定向运算:

介绍:

将计算表达式输出给bc去执行,特定类似于文件中输入,可以输入多行表达式,更加清晰。

语法介绍:

#方法1:
var_name=`bc [选项] << EOF
第一行表达式1
第二行表达式2
......
EOF
`

#方法2:
var_name=$( bc [选项] << EOF
第一行表达式1
第二行表达式2
......
EOF
)

例如:

[zhangjiajia@localhost ~]$ ^C
[zhangjiajia@localhost ~]$ b=`bc -l << EOF
> 1+1+1.1
> 1/3+12*7
> EOF
> `
[zhangjiajia@localhost ~]$ echo $b
3.1 84.33333333333333333333

[zhangjiajia@localhost ~]$ c=$(bc -l << EOF
> scale=3;10/3
> obase=2;100
> EOF
> )
[zhangjiajia@localhost ~]$ echo $c
3.333 1100100


二、比较运算符

 1、整数比较运算符:

简介:

整数比较运算符只支持整数,不支持小数与字符串,除非字符串的值是整数数字。

通常配合if-else语句使用。

语法1:

下表中假设a=1、b=2:

例如:

[zhangjiajia@localhost ~]$ [ 1 -eq 2 ] 
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [ 1 -ne 2 ]
[zhangjiajia@localhost ~]$ echo $?
0

[zhangjiajia@localhost ~]$ [ 1 -gt 2 ]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [ 1 -lt 2 ]
[zhangjiajia@localhost ~]$ echo $?
0

[zhangjiajia@localhost ~]$ [ 1 -ge 2 ]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [ 1 -le 2 ]
[zhangjiajia@localhost ~]$ echo $?
0

 语法2:

 例如:

[zhangjiajia@localhost ~]$ ((1<2))
[zhangjiajia@localhost ~]$ echo $?
0

[zhangjiajia@localhost ~]$ ((1>2))
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ ((1<=2))
[zhangjiajia@localhost ~]$ echo $?
0

[zhangjiajia@localhost ~]$ ((1>=2))
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ ((1==2))
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ ((1!=2))
[zhangjiajia@localhost ~]$ echo $?
0

[zhangjiajia@localhost ~]$ (("1"=="2"))
[zhangjiajia@localhost ~]$ echo $?
1

2、字符串比较运算符:

简介:

可以比较两个变量,变量的类型可以使数字(整数、小数)与字符串

字符串的比较可以使用 [ [ ] ] 和 [ ] 两种方式。

语法: 

例如:

[zhangjiajia@localhost ~]$ [[ "1" == "2" ]]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [[ 1.1 == 2 ]]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [[ 1 == 2 ]]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [[ "abc" == "abC" ]]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [[ "abc" != "abC" ]]
[zhangjiajia@localhost ~]$ echo $?
0

[zhangjiajia@localhost ~]$ [[ "abc" > "abC" ]]
[zhangjiajia@localhost ~]$ echo $?
0

[zhangjiajia@localhost ~]$ [[ "abc" > "abC" && "abc" == "abC" ]]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [[ "abc" > "abC" || "abc" == "abC" ]]
[zhangjiajia@localhost ~]$ echo $?
1


[zhangjiajia@localhost ~]$ [[ -z "abc" ]]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [[ -n "abc" ]]
[zhangjiajia@localhost ~]$ echo $?
0


[zhangjiajia@localhost ~]$ a="abc"
[zhangjiajia@localhost ~]$ [[ $a ]]
[zhangjiajia@localhost ~]$ echo $?
0

3、[ [ ] ]  和  [ ] 的区别:

首先:

不推荐用 (( )) 来比较、既不能比较小数又不能比较字符串、只能比较整数。

区别1:是否会有单词分隔的发生?

[ [ ] ] 不会发生单词分隔

[ ] 会发生单词分隔

所以,更推荐使用 [ [ ] ] 来比较

例如:使用 [ ] 会出现错误

[zhangjiajia@localhost ~]$ a="a"
[zhangjiajia@localhost ~]$ b="a b c"

[zhangjiajia@localhost ~]$ [[ $a == $b ]]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [ $a == $b ]
-bash: [: 参数太多


三、布尔运算符

语法:

例如:

[zhangjiajia@localhost ~]$ [[ 1 > 2 ]]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [[ ! 1 > 2 ]]
[zhangjiajia@localhost ~]$ echo $?
0

[zhangjiajia@localhost ~]$ [ 1 \> 2 -o 1 == 1 ]
[zhangjiajia@localhost ~]$ echo $?
0

[zhangjiajia@localhost ~]$ [ 1 \> 2 -a 1 == 1 ]
[zhangjiajia@localhost ~]$ echo $?
1

四、逻辑运算符

语法:

例如:

[zhangjiajia@localhost ~]$ [[ 1 > 2 && 1 == 1 ]]
[zhangjiajia@localhost ~]$ echo $?
1

[zhangjiajia@localhost ~]$ [[ 1 > 2 || 1==1 ]]
[zhangjiajia@localhost ~]$ echo $?
0

[zhangjiajia@localhost ~]$ [[ ! 1 > 2 ]]
[zhangjiajia@localhost ~]$ echo $?
0


五、文件测试运算符

1、linux系统文件类型介绍:

-:普通文件

d:目录文件

l:链接文件
如:
[zhangjiajia@localhost ~]$ ll /dev
lrwxrwxrwx. 1 root root           3 8月  24 02:35 cdrom -> sr0

b:块设备文件
如:
[zhangjiajia@localhost ~]$ ll /dev | grep usb
crw-------. 1 root root    247,   0 8月  24 02:35 usbmon0
crw-------. 1 root root    247,   1 8月  24 02:35 usbmon1
crw-------. 1 root root    247,   2 8月  24 02:35 usbmon2

c:字符设备文件
如:
[zhangjiajia@localhost ~]$ ll /dev | grep usb
crw-------. 1 root root    247,   0 8月  24 02:35 usbmon0
crw-------. 1 root root    247,   1 8月  24 02:35 usbmon1
crw-------. 1 root root    247,   2 8月  24 02:35 usbmon2

p:管道文件

2、常用操作符介绍:

属性检测描述如下: 黄色的是较为常见的。

操作符 说明 举例
-b file 检测文件是否是块设备文件,如果是,则返回 true。[ -b $file ] 
-c file 检测文件是否是字符设备文件,如果是,则返回 true。 [ -c $file ] 
-d file 检测文件是否是目录,如果是,则返回 true。[ -d $file ] 
-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。[ -f $file ] 
-g file 检测文件是否设置了 SGID 位,如果是,则返回 true。[ -g $file ] 
-k file    检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。  [ -k $file ] 
-p file检测文件是否是有名管道,如果是,则返回 true。[ -p $file ] 
-u file 检测文件是否设置了 SUID 位,如果是,则返回 true。[ -u $file ] 
-r file   检测文件是否可读,如果是,则返回 true。 [ -r $file ] 
-w file  检测文件是否可写,如果是,则返回 true。[ -w $file ] 
-x file   检测文件是否可执行,如果是,则返回 true。  [ -x $file ] 
-s file   检测文件是否不为空(文件大小是否大于0),不为空返回 true。[ -s $file ] 
-e file   检测文件(包括目录)是否存在,如果是,则返回 true。  [ -e $file ] 

例如:

[zhangjiajia@localhost ~]$ vim 123.sh
#!/bin/bash

file1="/home/zhangjiajia/read1.sh"

#测试是否可写
if [[ -w $file1 ]]
then
        echo "该文件可写"
else
        echo "该文件不可写"
fi

#测试是否可读
if [[ -r $file1 ]]
then
        echo "该文件可读"
else
        echo "该文件不可读"
fi

#测试是否可执行
if [[ -x $file1 ]]
then
        echo "该文件可执行"
else
        echo "该文件不可执行"
fi

#测试是否是普通文件
if [[ -f $file1 ]]
then
        echo "该文件是普通文件"
else
        echo "该文件不是普通文件"
fi

#测试是否是目录
if [[ -d $file1 ]]
then
        echo "该文件是目录"
else
        echo "该文件不是目录"
fi

#测试文件是否存在
if [[ -e $file1 ]]
then
        echo "该文件存在"
else
        echo "该文件不存在"
fi

#测试是否不为空
if [[ -s $file1 ]]
then
        echo "该文件不为空"
else
        echo "该文件为空"
fi

结果为:

[zhangjiajia@localhost ~]$ sh 123.sh
该文件可写
该文件可读
该文件不可执行
该文件是普通文件
该文件不是目录
该文件存在
该文件不为空

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2071275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kafka的基本概念

目录 1.Kafka的介绍 1.1介绍 1.2Kafka的概念 1.3.Kafka实现的日志聚合 1.4简单的收发消息 1.5其他消费模式 1.5.1指定消费进度 1.5.2分组消费 1.5.3查看消费者组的偏移量 1.6基于Zookeeper的Kafka集群 1.6.1使用集群的原因 1.6.2Kafka集群架构 1.6.3Topic下的Part…

2024年8月25日 十二生肖 今日运势

小运播报&#xff1a;2024年8月25日&#xff0c;星期日&#xff0c;农历七月廿二 &#xff08;甲辰年壬申月辛酉日&#xff09;&#xff0c;法定节假日。 红榜生肖&#xff1a;龙、牛、蛇 需要注意&#xff1a;鸡、狗、兔 喜神方位&#xff1a;西南方 财神方位&#xff1a;…

UVM中的TLM(事务级建模)通信(2)

上一篇介绍了UVM中利用TLM进行的一对一通信&#xff1a;UVM中的TLM(事务级建模)通信(1)-CSDN博客&#xff0c;除此之外&#xff0c;UVM还有两种特殊的端口&#xff1a;analysis_port和analysis_export&#xff0c;用于完成一对多的通信。 1.analysis端口 这两种端口同样也是用于…

域名泛解析是什么?如何设置?

在当今数字化的时代&#xff0c;网站建设和网络运营对于企业和个人来说都变得至关重要。而在这个过程中&#xff0c;域名的管理和配置起着关键作用。其中&#xff0c;域名泛解析是一个重要的概念&#xff0c;它可以为网站的运营和管理带来诸多便利。 一、域名泛解析是什么&…

尚品汇静态网页设计

目录 尚品汇静态网页设计 在线浏览 项目结果展示 准备 顶部导航条设计 头部设计 主导航区设计 主要内容区设计 左侧边栏区 一级菜单 二级菜单 中间内容区 右侧其他内容区 上部分快报区 下部分图标导航区 秒杀区设计 楼层区设计 顶部设计 详情区设计 页脚设…

ResNet网络学习

简介 Residual Network 简称 ResNet (残差网络) 下面是ResNet的网络结构&#xff1a; ResNet详细介绍 原理 传统方法的问题&#xff1a; 对于一个网络&#xff0c;如果简单地增加深度&#xff0c;就会导致 梯度消失 或 梯度爆炸&#xff0c;我们采取的解决方法是 正则化。…

充电桩系统云快充协议源码(云快充协议1.5 版本源码)

介绍 云快充协议云快充1.5协议云快充协议开源代码云快充底层协议云快充桩直连桩直连协议充电桩系统桩直连协议 软件架构 1、提供云快充底层桩直连协议&#xff0c;版本为云快充1.5&#xff0c;对于没有对接过充电桩系统的开发者尤为合适&#xff1b; 2、包含&#xff1a;启…

搭建智能客服机器人:langgraph实现用户订单管理

大家好&#xff0c;今天我们将创建一个智能客服机器人&#xff0c;它能够记录用户的食物订单到真实数据库中&#xff0c;并允许用户查看他们的订单。这是一个相对高级的Langgraph项目&#xff0c;大家可以先看一下前面介绍的Langgraph的基础课程。 项目概述 我们要构建的系统…

C程序设计——运算符1

条件运算符 这是一个三目运算符&#xff0c;用于条件求值(?:)。 来源&#xff1a;百度百科 这是C语言里&#xff0c;唯一三目&#xff08;即三个表达式&#xff09;运算符。具体格式如下&#xff1a; (表达式1) ? (表达式2) : (表达式3) ; 翻译成人话&#xff0c;就是&…

测试资料4444

一、HTML 1、HTML介绍 1.1web前端三大核心技术 HTML:负责网页架构 CS&#xff1a;负责网页的样式、美化 JS:负责网页的行为 1.2 HTML标签 单标签:<标签名 > 双标签内容 标签属性&#xff1a; 2 常用标签 script:js标签 style:css标签 link:外部加载css标签

SyntaxError: Unexpected token ‘??=‘ 解决办法

问题 原因 Node 15, 及 以上版本才能使用 ?? 操作符 我的版本&#xff1a; 解决 尝试升级node版本 参考 windows下node升级到最新版本&#xff08;亲测有效&#xff09; 有错误&#xff0c;但也创建成功了。 错误以后再改吧…

初识LLM大模型:入门级工程知识探索与解析

前言 源自脉脉上面刷到的大模型业务工程落地可以做的方向。其实如果不是接触相关工作&#xff0c;有的人可能不会想了解这方面&#xff0c;自己实习做的方向与之相关&#xff0c;因此想调研总结一下行业热点方向与基础入门知识&#xff0c;还有一些的专业词汇的解释。包括但不…

异常—python

一、异常 当检测到一个错误时&#xff0c;Python解释器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是异常, 也就是我们常说的BUG&#xff0c;那BUG是怎么由来的呢&#xff1f; 例如&#xff1a; print(1/0) 我们在小学的时候就知道0不能作除数&a…

线段树+二分,CF 431E - Chemistry Experiment

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 431E - Chemistry Experiment 二、解题报告 1、思路分析 贪心的考虑&…

NYX靶机笔记

NYX靶机笔记 概述 VulnHub里的简单靶机 靶机地址&#xff1a;https://download.vulnhub.com/nyx/nyxvm.zip 1、nmap扫描 1&#xff09;主机发现 # -sn 只做ping扫描&#xff0c;不做端口扫描 nmap -sn 192.168.84.1/24 # 发现靶机ip为 MAC Address: 00:50:56:E0:D5:D4 (V…

文心快码(Baidu Comate)初体验

文心快码&#xff08;Baidu Comate&#xff09;初体验 1文心快码简介和安装&#xff1a;简要介绍文心快码&#xff08;Baidu Comate&#xff09;、安装方法、使用方法等&#xff1b; Baidu Comate 是由百度自主研发&#xff0c;基于文心大模型&#xff0c;结合百度丰富的编程现…

【数模修炼之旅】08 支持向量机模型 深度解析(教程+代码)

【数模修炼之旅】08 支持向量机模型 深度解析&#xff08;教程代码&#xff09; 接下来 C君将会用至少30个小节来为大家深度解析数模领域常用的算法&#xff0c;大家可以关注这个专栏&#xff0c;持续学习哦&#xff0c;对于大家的能力提高会有极大的帮助。 1 支持向量机模型…

C++ TinyWebServer项目总结(10. 信号)

信号是由用户、系统、进程发送给目标进程的信息&#xff0c;以通知目标进程某个状态的改变或系统异常。Linux信号可由以下条件产生&#xff1a; 对于前台进程&#xff0c;用户可通过输入特殊终端字符来给它发送信号&#xff0c;如输入CtrlC通常会给进程发送一个中断信号。系统…

学习笔记 韩顺平 零基础30天学会Java(2024.8.24)

P532 Map接口特点2 P533 Map接口方法 P534 Map六大遍历方式 方法一&#xff1a;通过KeySet()&#xff0c;取出所有的Key&#xff0c;把取出的Key放到Set中&#xff0c;再通过Key取出对应的Value 到这里又有两种方式遍历Set&#xff1a;迭代器、增强for 方法二&#xff1a;通过v…

svn使用教程学习

如何撤销未提交的本地修改&#xff1f; 点击svn提交&#xff0c;双击文件&#xff0c;可以查看准备提交的修改内容。 如何撤销已经提交的内容&#xff1f; 选择‘复原此版本做出的修改’&#xff1a; 但是&#xff0c;这个只是复原在本地了&#xff0c;我们需要提交上去&…