【Linux脚本篇】shell变量的使用

news2024/11/14 4:19:05

目录

🍁shell变量替换

🍁定义变量

🍁shell变量运算

🍂整数运算

🍂小数运算


   🦐博客主页:大虾好吃吗的博客

   🦐专栏地址:Linux从入门到精通

shell变量替换

${变量#匹配规则}                                         #从头开始匹配,最短删除

${变量##匹配规则}                                      #从头开始匹配,最长删除

${变量%匹配规则}                                       #从尾开始匹配,最短删除

${变量%%匹配规则}                                    #从尾开始匹配,最长删除

${变量/旧字符串/新字符串}                          #替换字符串,仅替换第一个

${变量//旧字符串/新字符串}                         #替换字符串,替换全部

例1:从前往后删变量内容

[root@daxia ~]# Url=z3.www.baidu.com.cn
[root@daxia ~]# echo $Url
z3.www.baidu.com.cn
[root@daxia ~]# echo ${Url#*.}              #删除以 . 分割的第一个字段
www.baidu.com.cn
[root@daxia ~]# echo ${Url##*.}             #仅保留最后一个字段
cn

例2:从后往前删变量内容

[root@daxia ~]# echo $Url
z3.www.baidu.com.cn
[root@daxia ~]# echo ${Url%.*}              #删除最后一个字段
z3.www.baidu.com
[root@daxia ~]# echo ${Url%%.*}             #仅保留第一个字段
z3

例3:变量内容替换

[root@daxia ~]# echo $Url
z3.www.baidu.com.cn
[root@daxia ~]# echo ${Url/z3/l4}           #替换第一个z3为l4
l4.www.baidu.com.cn
[root@daxia ~]# echo ${Url//z3/l4}          #替换全部z3为l4
l4.www.baidu.com.cn

脚本题: 把/data下所有.txt文件,改名.bak,并tar包备份到/backup,最后解压还原文件名。合并起来做可能不理解,分开后尝试一下。

[root@daxia ~]# mkdir /data
[root@daxia ~]# mkdir /backup
[root@daxia ~]# touch /data/file{1..9}.txt
[root@daxia ~]# vim rename.sh
#!/bin/bash
File_txt=$(find /data -type f -iname "*.txt" |xargs > /data/txt.f)
for a in $(cat /data/txt.f)
do
    mv $a $a.bak
done 
​
tar zcf /backup/file.tar.gz  /data/*.bak
​
File_txt=$(find /data -type f -iname "*.bak" |xargs > /data/bak.f)
for b in $(cat /data/bak.f)
do
    mv $b ${b%.*}
done
​
​
#执行脚本
[root@daxia ~]# sh rename.sh
tar: 从成员名中删除开头的“/”

定义变量

happiness="towards the sea, with spring flowers blossoming,the the" 执行脚本,输出变量,并要求:

  1. 打印变量值字符串长度

  2. 删除所有的the

  3. 替换第一个the为that

  4. 替换所有the为that 用户按“1|2|3|4” ,输出相应选项内容,q|Q 退出

[root@daxia ~]# vim test1.sh
#!/bin/bash
happiness="towards the sea, with spring flowers blossoming,the the"
​
echo $happiness
​
cat <<EOF
1) 打印happiness长度
2) 删除所有的the
3) 替换第一个the为that
4) 替换所有the为that
EOF
​
read -p "请输入数字 1|2|3|4,或    q|Q: " var
​
if [ $var == q ];then
    exit
fi
​
if [ $var == Q ];then
    exit
fi
​
if [ $var -eq 1 ];then
    echo "当前happiness变量的长度是:${#happiness}"
fi
​
if [ $var -eq 2 ];then
    echo ${happiness//the/}
fi
​
if [ $var -eq 3 ];then
    echo ${happiness/the/that}
fi
​
if [ $var -eq 4 ];then
    echo ${happiness//the/that}
fi

shell变量运算

整数运算

expr、$(())、$[],不支持小数运算

a+b 加 a-b 减 a*b 乘(expr计算时,用 * ) a/b 除 a%b 余

例1:

[root@daxia ~]# a=20
[root@daxia ~]# b=10
[root@daxia ~]# expr $a + $b
30
[root@daxia ~]# echo $(($a+$b))
30
[root@daxia ~]# echo $[$a+$b]
30

例2:递增和递减

[root@daxia ~]# echo $((a++))       #表示先打印变量a,然后在加一位数值变成21,
20
[root@daxia ~]# echo $((a--))
21
[root@daxia ~]# echo $((++b))       #表示先加一位数值,在打印变量
11
[root@daxia ~]# echo $((--b))
10
[root@daxia ~]# echo $((100*(1+100)/2))         #求1加到100的和
5050

小数运算

bc加”|“管道符使用,可以将前面打印的结果给bc工具处理。

[root@daxia ~]# yum -y install bc           #安装bc工具
​
[root@daxia ~]# echo "2*4"
2*4
[root@daxia ~]# echo "2*4" | bc
8
[root@daxia ~]# echo "2^4" | bc
16
[root@daxia ~]# echo "scale=2;3/2" | bc
1.50
[root@daxia ~]# awk 'BEGIN{print 3/2}'              #awk也可以计算
1.5

脚本题: 例1:查看内存使用率,仅保留整数

[root@daxia ~]# vim mem.sh
#!/bin/bash
Mem_use=$(free -m |grep ^M |awk '{print $3/$2*100}')
if [ ${Mem_use%.*} -ge 80 ];then
    echo "memory is overfull: ${Mem_use%.*}%"
else
    echo "memory is OK: ${Mem_use%.*}%"
fi 
​
[root@daxia ~]# sh mem.sh
memory is OK: 47%

例2:查看磁盘使用状态,使用率超出80%就报警 思路: 怎么查看磁盘 怎么提取使用率 整数判断

[root@daxia ~]# vim disk.sh
​
#!/bin/bash
Disk=$(df -h |grep /$ |awk '{print $(NF-1)}')
​
if [ ${Disk%\%} -ge 80 ];then
    echo "你的磁盘使用率过高:$Disk"
else 
    echo "你的磁盘使用率正常:$Disk"
fi 
​
[root@daxia ~]# sh disk.sh
你的磁盘使用率正常:31%

                

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

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

相关文章

设计模式 -- 访问者模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…

SpringCloud入门实战(七)-Hystrix服务降级

&#x1f4dd; 学技术、更要掌握学习的方法&#xff0c;一起学习&#xff0c;让进步发生 &#x1f469;&#x1f3fb; 作者&#xff1a;一只IT攻城狮 。 &#x1f490;学习建议&#xff1a;1、养成习惯&#xff0c;学习java的任何一个技术&#xff0c;都可以先去官网先看看&…

三翼鸟:传统品牌只盯局部,智慧品牌谋划全局

“当今企业之间的竞争&#xff0c;不是产品之间的竞争&#xff0c;而是商业模式之间的竞争。”很多人都听过现代管理学之父德鲁克的这句话&#xff0c;但又有多少人真正理解了它&#xff1f; 以当下的语境去看&#xff0c;这里其实就是“自利”和“共荣”的区别。前者&#xf…

多臂老虎机问题

1.问题简介 多臂老虎机问题可以被看作简化版的强化学习问题&#xff0c;算是最简单的“和环境交互中的学习”的一种形式&#xff0c;不存在状态信息&#xff0c;只有动作和奖励。多臂老虎机中的探索与利用&#xff08;exploration vs. exploitation&#xff09;问题一直以来都…

Zabbix“专家坐诊”第189期问答汇总

问题一 Q&#xff1a;您好&#xff0c;为什么在shell脚本中&#xff0c;不写mysql命令的绝对路径&#xff0c;zabbix获取不到输出的值&#xff1f; A&#xff1a;mysql默认命令是针对root等有权限才能直接使用的&#xff0c;其他用户要使用要指定命令路径。 Q&#xff1a;zab…

SLB负载均衡haproxy的安装及使用

1.介绍 HAProxy是什么 HAProxy是一个免费的负载均衡软件&#xff0c;可以运行于大部分主流的Linux操作系统上。 HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力&#xff0c;具备丰富的功能。HAProxy的社区非常活跃&#xff0c;版本更新快速&#xff08;最新稳定版1.7.2于2…

【剧前爆米花--爪哇岛寻宝】网络互连,网络通信和网络分层

作者&#xff1a;困了电视剧 专栏&#xff1a;《JavaEE初阶》 文章分布&#xff1a;这是一篇关于网络初识的文章&#xff0c;在这篇文章中讲解了局域网广域网&#xff0c;IP地址&#xff0c;端口以及网络分层等相关内容&#xff0c;希望对你有所帮助&#xff01; 目录 网络互连…

无线通信网 - 无线局域网 WLAN(802.11 标准)

文章目录 1 概述2 WLAN2.1 802.11 标准2.2 网络分类2.3 通信技术 3 扩展3.1 移动通信3.2 网工软考真题 1 概述 #mermaid-svg-UcgosJsdJfSTEm0Y {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-UcgosJsdJfSTEm0Y .err…

PMO和PM必备六大复盘方法工具汇总

无论是对于企业还是个人来说&#xff0c;复盘都是一个能让我们快速成长的方法&#xff0c;尤其是项目经理和PMO&#xff0c;你是带领项目团队的&#xff0c;每一次项目的完成&#xff0c;都有很多经验&#xff0c;俗话说&#xff0c;最大的浪费是经验的浪费&#xff01; 复盘的…

如何解决国外主机托管中遇到的常见问题?

在国际化发展的今天&#xff0c;越来越多的企业和个人选择将网站托管在国外主机上。这样做的好处是显而易见的&#xff0c;如更好的网站访问速度、更多的服务器资源、更优质的服务和更灵活的管理权限等。但同时&#xff0c;使用国外主机也会带来一些问题。本文将讨论国外主机托…

浪潮信息龙蜥联合实验室领衔成立 Serverless SIG 打造标准化开源解决方案

近日&#xff0c;浪潮信息龙蜥联合实验室在龙蜥社区领衔成立 Serverless SIG&#xff08;服务器无感知计算 SIG&#xff09;&#xff0c;并举行了首届 Serverless SIG MeetUp&#xff0c;活动由浪潮信息龙蜥联合实验室主办&#xff0c;来自浪潮信息、天津大学、阿里云、Intel、…

面板数据熵权topsis法分析流程

面板数据熵权topsis法分析流程 一、案例背景 当前有9家公司连续5年&#xff08;2018-2022年&#xff09;的财务指标数据&#xff0c;想要通过这份数据&#xff0c;确定9家公司的财务排名情况。因为各项财务指标的权重有所不同&#xff0c;所以选择使用熵权topsis法进行研究。 …

unity GI 系统

间接光没有办法实现实时计算&#xff0c;所以需要一套GI系统去处理间接光。 GI系统主要解决的是间接光漫反射的实现&#xff0c;实现的载体是LightMap、Light Probe、Refletion Probe。需要一个后台程序&#xff08;离线渲染器&#xff09;来实现离线渲染。可以根据不同的物体…

iPhone清理工具:4Easysoft iPhone Cleaner for Mac

4Easysoft iPhone Cleaner for Mac是一款Mac上的iPhone清理软件&#xff0c;它可以帮助用户清理iPhone上的垃圾文件、缓存文件、无用图片和视频等&#xff0c;从而释放iPhone的存储空间&#xff0c;提高设备的性能。全面扫描您的 iOS 设备并对不必要的数据进行分类。轻松删除 i…

【软件测试面试】面试技巧,让面试官记住的自我介绍,疯狂收割offer.....

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 在讨论如何自我介…

CASAIM全自动3d测量仪自动检测差速器差壳全尺寸测量装配检测

随着汽车行业的新变化&#xff0c;汽车零部件行业也呈现出新的发展趋势。汽车零部件产品作为汽车制造业的配套产业&#xff0c;发展也十分迅速。  差速器作为汽车关键零部件&#xff0c;由差速器差壳、行星齿轮、半轴齿轮、半轴和行星齿轮轴组装而成。 差速器差壳通常采用一…

算法基础(三)(共有20道例题)

七、数学知识 &#xff08;一&#xff09;质数 质数&#xff08;素数&#xff09; 的定义&#xff1a; 互质的定义&#xff1a;除了1以外&#xff0c;两个没有其他共同质因子的正整数称为互质&#xff0c;比如3和7互质。因为1没有质因子&#xff0c;1与任何正整数&#xff08…

ASEMI代理ADI亚德诺ADM202EARNZ-REEL车规级芯片

编辑-Z ADM202EARNZ-REEL芯片参数&#xff1a; 型号&#xff1a;ADM202EARNZ-REEL 工作电压范围&#xff1a;4.5-5.5V VCC电源电流&#xff1a;2.5 mA 输入逻辑阈值低&#xff1a;0.8V 输入逻辑阈值高&#xff1a;2.4V 输出电压摆幅&#xff1a;9.0V 变送器输出电阻&am…

IMF: Interactive Multimodal Fusion Model for Link Prediction

[2303.10816] IMF: Interactive Multimodal Fusion Model for Link Prediction (arxiv.org) 目录 1 背景 2 贡献 3 模型 3.1 Overall Architecture 3.2 Modality-Specific Encoders 3.3 Multimodal Fusion 3.4 Contextual Relational Model 3.5 Decision Fusion 3.6 …

GNSS监测站在滑坡和地质灾害中的应用

《地质灾害防治条例》涉及的地质灾害包括崩塌、滑坡、泥石流、地面沉降、地面塌陷和地裂缝等&#xff0c;已成为我国主要的自然灾害&#xff0c;严重威胁着人民的生命财产安全和生存环境以及国家重大工程的建设&#xff0c;制约着我国国民经济的可持续发展。 我国的地质灾害监…