30、 shell脚本进阶

shell脚本if+case

一、条件测试

1.1、条件测试:$?----返回码,判断命令或者脚本是否执行成功(最近的一条)

0 true 为真就是成功 成立

非0 false 失败或者异常。

二、test命令

test命令:可以进行条件测试,然后根据返回值来判断条件是否成立。

test -e :测试文件或者目录是否存在。

[root@localhost opt]# test -e 123
[root@localhost opt]# echo $?
0

test -d:测试目录是否存在

[root@localhost opt]# test -d 123
[root@localhost opt]# echo $?
1
[root@localhost opt]# mkdir 345
[root@localhost opt]# test -d 345
[root@localhost opt]# echo $?
0

test -f:测试文件是否存在

[root@localhost opt]# test -f 123
[root@localhost opt]# echo $?
0

test -e=test -d +test -f

test -r:测试当前用户对文件或目录是否由读权限

test -w:测试当前用户对文件或目录是否由写权限

test -x:测试当前用户对文件或目录是否由执行权限

-rw-r--r--. 1 root  root        0 6月  11 22:49 123
drwxr-xr-x. 2 root  root        6 6月  12 09:37 345
-rwxrwxrwx. 1 xy102 xy102      38 5月  21 15:36 login.sh
drwxr-xr-x. 9 dn    dn        186 5月  22 20:07 nginx-1.22.0
-rw-r--r--. 1 root  root  1073322 5月  22 09:32 nginx-1.22.0.tar.gz
-rw-r--r--. 1 root  root        7 6月  11 10:23 passwd.txt
-rw-r--r--. 1 root  root      111 6月  11 10:18 test1
-rw-r--r--. 1 root  root      108 6月  11 15:07 test1.sh
-rw-r--r--. 1 root  root      225 6月  11 16:12 test2.sh
-rwxrwxrwx. 1 root  root      285 6月  11 16:54 test.sh
[root@localhost opt]# test -r 345
[root@localhost opt]# echo $?
0
[root@localhost opt]# test -w 345
[root@localhost opt]# echo $?
0
[root@localhost opt]# test -x 345
[root@localhost opt]# echo $?
0
[root@localhost opt]# test -x 123
[root@localhost opt]# echo $?
1
[root@localhost opt]# test -r 123
[root@localhost opt]# echo $?
0
[root@localhost opt]# test -w 123
[root@localhost opt]# echo $?
0

三、整数比较符(以下操作符只能用于整数比较)

-eq:等于 == 既可以比较整数,也可以比较字符串是否一致

-ne:不等于 != :不等于

-gt:大于 > :大于

-lt:小于 < :小于

-ge:大于等于 >=:大于等于

-le:小于等于 <=:小于等于

比较符的第二种

[ ]

[root@localhost opt]# [ 3 -eq 5 ]
[root@localhost opt]# echo $?
1
[root@localhost opt]# [ test == test ]
[root@localhost opt]# echo $?
0

第三种格式:

[[]]:可以使用高级的模式,可以使用正则表达式,而且,在双中括号中,使用字符串的时候可以不加引号。

第四种:

(())运算符

[root@localhost opt]# a=4
[root@localhost opt]# b=3
[root@localhost opt]# (( $a > $b ))
[root@localhost opt]# echo $?
0
[root@localhost opt]# (( $a < $b ))
[root@localhost opt]# echo $?
1

逻辑与和逻辑或

与 :&&–条件都要满足才成立 -a

在这里插入图片描述

或 :||–有一个条件满足就成立 -o

在这里插入图片描述

[[]]中间只能写&&和||

[root@localhost opt]# b=5
[root@localhost opt]# [[ $b -gt 4 && $b -lt 6 ]]
[root@localhost opt]# echo $?
0
[root@localhost opt]# [[ $b -gt 4 -a $b -lt 6 ]]
-bash: 条件表达式中有语法错误
-bash: `-a' 附近有语法错误
[root@localhost opt]# [ $a -ge 8 || $a -le 4 ]
-bash: [: 缺少 `]'
bash: 5: 未找到命令...
[root@localhost opt]# [[ $a -ge 8 || $a -le 4 ]]
[root@localhost opt]# echo $?
1

四、if语句:

4.1、单分支结构:

[root@localhost opt]# vim if.shif [ 3 -gt 2 ]
thenecho "ok"
fi
#if后面是条件测试语句
#then   下面是命令序列,只有条件测试语句成立,才会执行then的命令
模块。
#fi  结束语句[root@localhost opt]# sh if.sh
ok
[root@localhost opt]# vim if.shif [ 3 -gt 4 ]
thenecho "ok"
fi
#if后面是条件测试语句
#then   下面是命令序列,只有条件测试语句成立,才会执行then的命令
模块。
#fi  结束语句[root@localhost opt]# sh if.sh

4.2、双分支结构

[root@localhost opt]# vim if.sh#双分支结构
if [ 3 -gt 4 ]
then
echo "ok"
else
echo "no"
fi
#条件满足执行then,不满足执行else,执行完毕,语句结束。[root@localhost opt]# sh if.sh
no
4.2.1、通过位置变量传参的方式,给脚本内部传一个ip地址,

ping的通的要提示用户ip is online,而且要保存到/opt/hosts.txt文件当中

如果ping不通,提示用户ip is offline。

[root@localhost opt]# vim 1.shping -c 3 $1
if [[ $? -eq 0 ]]
thenecho "ip is online"echo $1 >> /opt/hosts.txt
elseecho "ip is offline"
fi[root@localhost opt]# sh 1.sh www.baidu.com
PING www.a.shifen.com (180.101.50.188) 56(84) bytes of data.
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=1 ttl=128 time=7.80 ms
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=2 ttl=128 time=8.43 ms
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=3 ttl=128 time=17.5 ms--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 7.809/11.263/17.541/4.446 ms
ip is online

#随机输入一个整数,read -p输入一一个数

#判断这个数是偶数还是奇数,偶数提示偶数,奇数提示奇数

在这里插入图片描述

[root@localhost opt]# vim 2.shread -p "随机输入一个数" a
if [[ $a%2 -eq 0 ]]
thenecho "提示偶数"
elseecho "提示奇数"
fi[root@localhost opt]# sh 2.sh
随机输入一个数5
提示奇数
[root@localhost opt]# sh 2.sh
随机输入一个数4
提示偶数### 4.3、多分

支结构

if []
then命令序列
elif []
then命令序列
elif []
then命令序列
else
then命令序列
fi
[root@localhost opt]# vim 3.shread -p "请输入一个整数" a
if [[ $a -lt 10 ]]
thenecho "1"
elif [[ $a -gt 25 ]]
thenecho "2"
elseecho "3"
fi[root@localhost opt]# sh 3.sh
请输入一个整数6
1
[root@localhost opt]# 
[root@localhost opt]# sh 3.sh
请输入一个整数67
2
[root@localhost opt]# sh 3.sh
请输入一个整数15
3
[root@localhost opt]# vim if4.shread -p "请输入您的分数:" a
if [[ $a -ge 85 && $a -le 100 ]]
thenecho "优秀"
elif [[  $a -ge 70 && $a -le 84 ]]
thenecho "一般"
elif [[ $a -ge 60 && $a -le 69 ]]
thenecho "合格"
elseecho "30遍"
fi[root@localhost opt]# sh if4.sh
请输入您的分数:78
一般
[root@localhost opt]# sh if4.sh
请输入您的分数:98
优秀
[root@localhost opt]# sh if4.sh
请输入您的分数:12
30遍

4.4、嵌套if

在这里插入图片描述


[root@localhost opt]# vim if5.sh
[root@localhost opt]# sh if5.sh
请输入您的分数:10.5
if5.sh: 第 2 行:[: 10.5: 期待整数表达式
输入错误
[root@localhost opt]# vim if5.shread -p "请输入您的分数:" a
if [ $a -eq $a ] &> /dev/null
then
if [[ $a -ge 85 && $a -le 100 ]]
thenecho "优秀"
elif [[  $a -ge 70 && $a -le 84 ]]
thenecho "一般"
elif [[ $a -ge 60 && $a -le 69 ]]
thenecho "合格"
elseecho "30遍"
fi
elseecho "输入错误"
fi[root@localhost opt]# sh if5.sh
请输入您的分数:10.9
输入错误

五、case语句

#case语句 相当于多分支结构
case 变量值 in模式1)
命令序列
;;
模式2)
命令序列
;;
.....
*)相当于else
命令序列
esac

在这里插入图片描述

六、课后练习

1.检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限

[root@localhost opt]# vim if11.shtest -e /root/test.sh
if [[ $? -eq 0 ]]
then
echo "文件存在"
test -x /root/test.shif [[ $? -eq 0 ]]
thenecho "有执行权限"
elseecho "没有执行权限"
fi
elseecho "文件不存在"
fi[root@localhost opt]# sh if11.sh
文件不存在
[root@localhost opt]# cd /root
[root@localhost ~]# touch test.sh
[root@localhost ~]# sh if11.sh
sh: if11.sh: 没有那个文件或目录
[root@localhost ~]# cd /opt
[root@localhost opt]# sh if11.sh
文件存在
没有执行权限
[root@localhost opt]# cd /root
[root@localhost ~]# chmod 777 test.sh
[root@localhost ~]# cd /opt
[root@localhost opt]# sh if11.sh
文件存在
有执行权限

2.提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,
大于10秒的都淘汰,
如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别。
男生进男生组,女生进女生组,如果输入错误请提示错误(整数判断,小数判断。9.72 3.21 )

vim if12.shread -p "提示用户输入100m赛跑的秒速:" a
if [[ $a -eq $a ]]
thenecho "整数"if [[ $a -gt 0 && $a -le 10 ]]thenecho "进入选拔赛"
read -p "输入性别:" bif [[ $b == "boy" ]]  ##字符串比较只能用==thenecho "进男生组"elif [[ $b == "girl" ]]thenecho "进女生组"elseecho "输入错误,提示错误"fielseecho "大于10秒淘汰"fi
elseecho "重新输入"
fi
~              [root@localhost opt]# sh if12.sh
提示用户输入100m赛跑的秒速:5
整数
进入选拔赛
输入性别:boy
进男生组
[root@localhost opt]# sh if12.sh
提示用户输入100m赛跑的秒速:7
整数
进入选拔赛
输入性别:girl
进女生组
[root@localhost opt]# sh if12.sh
提示用户输入100m赛跑的秒速:5
整数
进入选拔赛
输入性别:boy
进男生组
[root@localhost opt]# sh if12.sh
提示用户输入100m赛跑的秒速:7
整数
进入选拔赛
输入性别:girl
进女生组
[root@localhost opt]# sh if12.sh
提示用户输入100m赛跑的秒速:45
整数
大于10秒淘汰
[root@localhost opt]# 

3.用case语句解压根据后缀名为 .tar.gz 或 .tar.bz2 的压缩包到 /opt 目录
tar -zxvf

tar -jxvf

[root@localhost opt]# vim if13.shcase $1 in
*.tar.gz)
tar -zxvf $1 -C /opt
;;
*.tar.bz2)
tar -jxvf $1 -C /opt
;;
esac##压缩
tar -zcvf 123.tar.gz 123 456 可以多个文件
tar -jcvf 123.tar.bz2 123 456 可以多个文件
##解压
tar -zxvf 123.tar.gz 
tar -jxvf 123.tar.bz2 [root@localhost opt]# touch 123
[root@localhost opt]# touch 456
[root@localhost opt]# tar -jcvf 123.tar.bz2 123 456
123
456
[root@localhost opt]# sh 4.sh /opt/123.tar.bz2
123
456
[root@localhost opt]# rm -rf 123 456
[root@localhost opt]# ls
123.tar.bz2  2.sh  4.sh       login.sh      nginx-1.22.0.tar.gz
1.sh         3.sh  hosts.txt  nginx-1.22.0
[root@localhost opt]# sh 4.sh /opt/123.tar.bz2
123
456

4.提示用户输入内容,使用if 语句判断输入的内容是否为整数。判断范围0-100。

vim if14.shread -p "提示用户输入内容:" a
if [[ $a -eq $a ]]
thenecho "为整数"if [[ $a -ge 0 && $a -le 100 ]]thenecho "在0-100范围内"elseecho "不在0-100范围内"fi
else
echo "不是整数"
fi[root@localhost opt]# sh if14.sh
提示用户输入内容:2324
为整数
不在0-100范围内
[root@localhost opt]# sh if14.sh
提示用户输入内容:34
为整数
在0-100范围内

5.根据上一题再判断输入的内容是奇数还是偶数。

vim if15.shread -p "提示用户输入内容:" a
if [[ $a -eq $a ]]
thenecho "为整数"if [[ $a -ge 0 && $a -le 100 ]]thenecho "在0-100范围内"if [[ $(($a%2)) -eq 0 ]]thenecho "偶数"elseecho "奇数"fi
elseecho "不在0-100范围内"fi
else
echo "不是整数"
fi提示用户输入内容:68
为整数
在0-100范围内
偶数
[root@localhost opt]# sh if15.sh
提示用户输入内容:55
为整数
在0-100范围内
奇数

6.用if 语句判断主机是否存活.保存到/opt/hosts.txt

ping -c 5 不显示ping的过程

vim if16.shping -c 5 -q $1
if [[ $? -eq 0 ]]
then
echo "存活"
echo $1 >> /opt/hosts.txt
else
echo "不存活"
fi[root@localhost opt]# sh if16.sh www.baidu.com
PING www.a.shifen.com (180.101.50.242) 56(84) bytes of data.--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 4.730/5.502/7.089/0.827 ms
存活
[root@localhost opt]# sh if16.sh www.jingdong.com
PING mfn-df-sched.jcloudimg.com (222.186.184.140) 56(84) bytes of data.--- mfn-df-sched.jcloudimg.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 5.579/8.568/17.161/4.332 ms
存活

7.用case语句控制 firewalld start|stop|restart|status 来管理firewalld服务,
要求如果命令选项不对,则提示输入不正确: {start|stop|status|restart}”。
stop start status restart

systemctl

[root@localhost opt]# vim if17.shread -p "输入管理防火墙的命令:" a
case $a in
start)systemctl start firewalldecho "开启"
;;
stop)systemctl stop firewalldecho "关闭防火墙"
;;
restart)systemctl restart firewalldecho "重启"
;;
status)systemctl status firewalldecho "状态"
;;
*)echo "不正确"
esac[root@localhost opt]# sh if17.sh
输入管理防火墙的命令:restart
重启
[root@localhost opt]# sh if17.sh
输入管理防火墙的命令:stop
关闭防火墙
[root@localhost opt]# sh if17.sh
输入管理防火墙的命令:restart
重启
[root@localhost opt]# vim if17.sh
[root@localhost opt]# sh if17.sh
输入管理防火墙的命令:status
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: active (running) since 三 2024-06-12 17:08:16 CST; 2min 59s agoDocs: man:firewalld(1)Main PID: 15289 (firewalld)Tasks: 2CGroup: /system.slice/firewalld.service└─15289 /usr/bin/python -Es /usr/sbin/firewall...6月 12 17:08:17 localhost.localdomain firewalld[15289]: ...
6月 12 17:08:17 localhost.localdomain firewalld[15289]: ...
6月 12 17:08:17 localhost.localdomain firewalld[15289]: ...
6月 12 17:08:17 localhost.localdomain firewalld[15289]: ...
6月 12 17:08:17 localhost.localdomain firewalld[15289]: ...
6月 12 17:08:17 localhost.localdomain firewalld[15289]: ...
6月 12 17:08:17 localhost.localdomain firewalld[15289]: ...
6月 12 17:08:17 localhost.localdomain firewalld[15289]: ...
6月 12 17:08:17 localhost.localdomain firewalld[15289]: ...
6月 12 17:08:17 localhost.localdomain firewalld[15289]: ...
Hint: Some lines were ellipsized, use -l to show in full.
状态

roup: /system.slice/firewalld.service
└─15289 /usr/bin/python -Es /usr/sbin/firewall…

6月 12 17:08:17 localhost.localdomain firewalld[15289]: …
6月 12 17:08:17 localhost.localdomain firewalld[15289]: …
6月 12 17:08:17 localhost.localdomain firewalld[15289]: …
6月 12 17:08:17 localhost.localdomain firewalld[15289]: …
6月 12 17:08:17 localhost.localdomain firewalld[15289]: …
6月 12 17:08:17 localhost.localdomain firewalld[15289]: …
6月 12 17:08:17 localhost.localdomain firewalld[15289]: …
6月 12 17:08:17 localhost.localdomain firewalld[15289]: …
6月 12 17:08:17 localhost.localdomain firewalld[15289]: …
6月 12 17:08:17 localhost.localdomain firewalld[15289]: …
Hint: Some lines were ellipsized, use -l to show in full.
状态


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

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

相关文章

Python内存管理与垃圾回收机制

目录 一、引言 二、Python内存管理概述 三、引用计数机制 四、垃圾回收机制 标记-清除&#xff08;Mark-and-Sweep&#xff09; 分代收集&#xff08;Generational Collection&#xff09; 五、内存泄漏与优化 六、总结 一、引言 Python作为一门高级编程语言&#xff…

Wells Fargo 借助 MongoDB 推出下一代银行卡支付

MongoDB客户案例导读 MongoDB以其灵活的数据模型、高性能的实时分析能力和可扩展的分布式架构&#xff0c;帮助Wells Fargo富国银行显著提升了数据处理效率和业务响应速度&#xff0c;为其大型机现代化和数字化转型提供了强有力的技术支撑。 金融服务市场正在经历一场变革&am…

像备份Windows一样简单的ghost软件!

数据的安全性对于个人用户和企业来说都至关重要。尤其是运行着重要服务的Linux系统,一旦遇到系统崩溃或硬件故障,如果没有及时的备份,可能会导致不可估量的损失。这时,一款强大而易用的备份还原工具就显得尤为重要。G4L(Ghost for Linux)就是这样一款专为Linux系统设计的…

2024年数字技术与智慧教育国际会议(DTSE 2024,7月26-28)

2024年数字技术与智慧教育国际会议&#xff08;DTSE 2024&#xff09;将于2024年7月26日在广东省广州市召开&#xff0c;本次会议专注于“数字技术与智慧教育”领域&#xff0c; 将汇集全球范围内的学者、研究人员以及教育技术开发者&#xff0c;共同探索和分享该领域内的最新学…

实验12 路由重分布

实验12 路由重分布 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤 一、 原理描述 在大型网络的组建过程中&#xff0c;隶属不同机构的网络部分往往会根据自身的实际情况来选用路由协议。例如&#xff0c;有些网络规模很小&#xff0c;为了管理简单&…

比特币私钥公钥地址生成

比特币私钥公钥地址生成算法 原理 实现 #!coding:utf8#author:yqq #date:2019/3/4 0004 14:35 #description: 比特币地址生成算法import hashlib import ecdsa import os#2019-05-15 添加私钥限制范围 g_b58 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz#g…

Linux Radix tree简介

文章目录 前言一、Radix tree简介二、Operations2.1 Lookup2.2 Insertion2.3 Deletion 三、Linux内核API3.1 初始化3.2 radix_tree_insert/delete3.3 radix_tree_preload3.4 radix_tree_lookup3.5 radix_tree_tag_set3.6 radix_tree_tagged 四、address_space4.1 简介4.2 相应数…

使用Arrays.asList 报错Nullpointerexception 需要提前对参数进行判空

//为什么这样的时候会报空指针异常**Arrays.asList 这里这个方法中的参数为空**String[] checkedResourceNos1 dto.getCheckedResourceNos();List<String> checkedResourceNos null; //需要在这里**判断是否为空**&#xff0c;**不为空才能**调**用Arrays.asList转化为…

IC验证中有符号浮点数的运算(避坑)

如上图&#xff0c;仅第一种表达才能计算出正确的结果-180&#xff0c;另外两种方式存在缺少符号和溢出的错误&#xff0c;计算出的均是180&#xff0c;其中reg[31:0] theta_q31 h8000_0000。 如果 theta_q31 h8000_0000到h7fff_ffff之间的数时&#xff0c;上述第一种表达仅能…

暗色系B端界面有什么好处、应用场景、缺点、该如何设计。

B端管理系统界面蓝色系和浅色系的非常多&#xff0c;暗色系一般不作为首选&#xff0c;这背后是什么原因呢&#xff0c;如果真的要设计暗色系界面&#xff0c;该如何办呢&#xff0c;本文就解决这些问题。 一、暗色系B端界面相对于浅色系有什么好处 1. 减少眩光和视觉疲劳&am…

国学诗词app开发,学古贯今,句句珠玑

“鹅鹅鹅&#xff0c;曲项向天歌。”这是很多人学会的第一首诗&#xff0c;国学诗词作为中华传统文化的重要组成部分&#xff0c;不仅在历史中占据重要地位&#xff0c;也是儿童学前启蒙的不二选择。对于家长来说&#xff0c;他们更喜欢在学前教孩子一些经典国学和古诗词&#…

高考后的抉择:计算机相关专业的未来发展与前景探讨

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

使用C#快速搭建一个在windows运行的exe应用

文章目录 一、前言1.1 编写语言需要工具1.2 选择自己需要的组件进行安装 二、新建项目1.1 新建一个 .NET4.x 的项目1.2 添加一个小案例1.3 对界面进行美化1.3.1、配置Form属性1.3.2、配置Button按钮 1.4 查看组将的相关代码 三、后记 一、前言 这是一个比较旧的内容&#xff0…

【android】json

设置第potition个数据项的view的属性 成功显示数据项&#xff0c;熟悉recycleview三个方法 新建页面&#xff0c;定义适配器&#xff0c;指定使用MyViewHolder类对象保存每个数据胡view组件 padding-内部边距 bold-加粗 新建类&#xff0c;描述新闻内容 定义组件 public i…

模拟信号转RS-485/232,数据采集A/D转换模块 YL21

特点&#xff1a; ● 模拟信号采集&#xff0c;隔离转换 RS-485/232输出 ● 采用12位AD转换器&#xff0c;测量精度优于0.1% ● 通过RS-485/232接口可以程控校准模块精度 ● 信号输入 / 输出之间隔离耐压3000VDC ● 宽电源供电范围&#xff1a;8 ~ 32VDC ● 可靠性高&…

网络安全 - ARP 欺骗原理+实验

APR 欺骗 什么是 APR 为什么要用 APR A P R \color{cyan}{APR} APR&#xff08;Address Resolution Protocol&#xff09;即地址解析协议&#xff0c;负责将某个 IP 地址解析成对应的 MAC 地址。 在网络通信过程中会使用到这两种地址&#xff0c;逻辑 IP 地址和物理 MAC 地址&…

如何保证数据库和缓存的一致性

背景&#xff1a;为了提高查询效率&#xff0c;一般会用redis作为缓存。客户端查询数据时&#xff0c;如果能直接命中缓存&#xff0c;就不用再去查数据库&#xff0c;从而减轻数据库的压力&#xff0c;而且redis是基于内存的数据库&#xff0c;读取速度比数据库要快很多。 更新…

android studio过滤日志

荣耀手机的日志有很多乱七八糟的输出 在logcat设置过滤 filter name:过滤名称随意 log tag不知道是什么 log message设置过滤的内容或者设置显示的内容 需要过滤的内容&#xff1a; ^(?!.*(gralloc4|InputMethodManager|tagSocket|dataspace)).*$以|分割要过滤的内容 要显…

计算机网络(2) 网络层:IP服务模型

一.Internet Protocol在TCP/IP四层模型中的作用 第三层网络层负责数据包从哪里来到哪里去的问题。传输层的数据段提交给网络层后&#xff0c;网络层负责添加IP段&#xff0c;包含数据包源地址与目的地址。将添加IP段的数据包交由数据链路层添加链路头形成最终在各节点传输中所需…

Maven:一个下载jar依赖失败的问题解决方案

内部的一个jar包已经上传到了私服上&#xff0c;在私服管理端也能看到该jar包的完整信息&#xff0c;但是springboot项目引入该jar包发现死活下载不下来&#xff0c;报错如图&#xff1a; 从该错误信息中可以看到&#xff0c;找不到服务名是xxl-job这个的&#xff0c;我们要找的…