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

【Linux专栏】shell脚本变量的取值|转换

 Linux&&Oracle相关文档,希望互相学习,共同进步

风123456789~-CSDN博客


1.背景

        复习一下linux的命令中,变量赋值、变量替换、命令中的变量赋值;批量替换字符串为指定值;判断文件是否存在;字符串转大小写后重新赋值等。

2. 基础实验

2.1 变量实验 “$var” 与 '$var'

知识点:

   变量,单引号‘不会被解析。

   双引号(")允许变量扩展,同时允许你直接在字符串中使用单引号

例子代码:

var="single quotes: '"
echo "$var"
echo "$var"
echo $var
echo ${var}
echo '$var'

执行截图:

在单引号字符串中,你可以使用转义字符 \' 来表示单引号:

var='single quotes: \'
echo "$var"

执行截图:

如需在变量中同时包含单引号和双引号,可以将包含单引号的部分放在双引号中,反之亦然。

var="single quotes: \' and \"double quotes: \""echo $var

执行截图:

2.2 定义变量、查看变量的值

知识点:

        变量名以字母或下划线开头,区分大小写,建议全大写

        变量名=变量值 ,将右边的值赋予左边

        查看变量的值:echo $变量名

aaa=111
bbb=222
echo $aaa $bbb

截图:

2.3 变量的引用方式

知识点:

   双引号:允许通过$符号引用其他变量值,会将变量替换为值

   单引号:禁止引用其他变量值,$视为普通字符,原样输出

   反撇号:命令替换,提取命令执行后的输出结果

   $()括起来的命令替换:将命令的输出作为参数传递给其他命令

[root@localhost opt]# echo "$product"
python
[root@localhost opt]# echo "${product}3.3"	'双引号:允许通过$符号引用其他变量值'
python3.3
[root@localhost opt]# echo ‘$product’
‘python’
[root@localhost opt]# echo '$product'	'单引号禁止引用其他变量值,$视为普通字符'
$product
[root@localhost opt]# ps aux | wc -l
151
[root@localhost opt]# num=`ps aux | wc -l`	'反撇号中识别命令,对命令结果进行解析'
[root@localhost opt]# echo $num
152
[root@localhost opt]# abc=$(ps aux | wc -l)
[root@localhost opt]# echo $abc
152

注意   反撇号:命令替换,提取命令执行后的输出结果  或者 $(命令执行后结果)

例子:以下统计文件夹中文件的数量,并将数量赋值给变量aaa

ls -l | grep "^-" | wc -l
aaa=`ls -l | grep "^-" | wc -l`
echo ${aaa}或者:bbb=$(ls -l | grep "^-" | wc -l)
echo ${bbb}

截图:

3.实例

3.1 批量替换文件的字符串为目标变量

如:将文本 aa_test  中字符串 014011030 替换为变量字符串

命令:

aa_test内容:query=(fm_ac_book:" WHERE BANK_CODE LIKE '014011002%' "
,fm_ac_assist:" WHERE BANK_CODE LIKE '014011002%' "
)
directory=EXTRACT_DIR
compression=ALL
tables=fm_ac_book,fm_ac_assistorgno=014011002
echo $orgno
sed -i "s/014011030/$orgno/g"  aa_test

截图:

此时,将命令整体用反撇号 括起来,依然可以得到需要的结果

不加引号或反撇号 也可以执行

但是加上单引号就不可以了

3.2判断文件是否存在

判断文件是否存在[oracle@neptune extract]$ cat aa.sh
#!/bin/bashif [[ ! -e "aa.sh" ]]; thenecho "存在"elseecho "不存在"
fi

3.3 字符串转大小写

在Linux命令行中,有多种方法可以将字符串转换为大小写 ,本文主要针对 以下3种:

1)tr命令:可以在文件或者命令流中进行字符转换。

echo hello World | tr '[:lower:]' '[:upper:]'
echo hello World | tr '[:upper:]' '[:lower:]'echo hello World | tr [:lower:] [:upper:]
echo hello World | tr [:upper:] [:lower:]或:
echo "hello world" | tr 'a-z' 'A-Z'

截图:

2)使用awk命令转换大小写

echo "OraclEstring" | awk '{print toupper($0)}'echo "OraclEstring" | awk '{print tolower($0)}'

截图:

3)^方式转大写

^^2个:全部大写             ,,2个:全部小写

^ 1个:首字母大写          ,1个:首字母小写

var="fengFYing_sTRing haHAhe"echo ${var^} 
echo ${var^^}   echo ${var,}
echo ${var,,}

截图:

将文本中所有内容,全部转为大写:

cat a.txt | while read i; do echo ${i^^}; done

4.总结

– $变量名:用来引用变量的值。例如,$HOME表示当前用户的主目录。
– ${变量名}:与$变量名类似,但用于明确变量名的边界。

                   特别适用于需要明确变量名边界的情况。
– $((表达式)):用于进行算术运算。例如,$((2+2))将返回4。

– `命令`:将命令的输出结果作为字符串进行替换。例如,`date`将返回当前的日期。
– $(命令):与`命令`相同,但更推荐使用$(命令)的方式。

– 参数替换和命令替换中的引号使用非常重要。在使用命令替换时,建议使用$()的方式,并避免使用反引号(`)。
– 在参数替换和命令替换中,可以添加额外的双引号来防止特殊字符的意外展开。
– 使用命令替换时,要注意命令的输出结果是否包含换行符等特殊字符,需要根据实际情况进行处理。

实验验证:ok 


项目管理--相关知识   

项目管理-项目绩效域1/2-CSDN博客

项目管理-项目绩效域1/2_八大绩效域和十大管理有什么联系-CSDN博客

项目管理-项目绩效域2/2_绩效域 团不策划-CSDN博客

高项-案例分析万能答案(作业分享)-CSDN博客

项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-CSDN博客

项目管理-配置管理与变更-CSDN博客

项目管理-项目管理科学基础-CSDN博客

项目管理-高级项目管理-CSDN博客

项目管理-相关知识(组织通用治理、组织通用管理、法律法规与标准规范)-CSDN博客


Oracle其他文档,希望互相学习,共同进步

Oracle-找回误删的表数据(LogMiner 挖掘日志)_oracle日志挖掘恢复数据-CSDN博客

oracle 跟踪文件--审计日志_oracle审计日志-CSDN博客

ORA-12899报错,遇到数据表某字段长度奇怪现象:“Oracle字符型,长度50”但length查却没有50_varchar(50) oracle 超出截断-CSDN博客

EXP-00091: Exporting questionable statistics.解决方案-CSDN博客

Oracle 更换监听端口-CSDN博客

http://www.dtcms.com/a/536944.html

相关文章:

  • [Dify 实战] 插件调试技巧(进阶篇):本地测试与部署全流程问题排查指南(Dify本地部署环境下)
  • 一、初识 LangChain:架构、应用与开发环境部署
  • 中山公司网站建设阿里云域名交易平台
  • 做flash音乐网站的开题报告做网站建设的合同范本
  • Trait与泛型高级用法
  • 解锁效率:一份关于大语言模型量化的综合技术指南
  • 网站后天添加文章不显示上海搜索优化推广哪家强
  • 前端基础之《React(3)—webpack简介-集成JSX语法支持》
  • 虚拟机之间配置免密登录(Centos)
  • 嵌入式测试的工作内容非常具体和专业化,它横跨了软件和硬件两个领域。
  • 保定网站建设团队网站备案密码 多少位
  • ZW3D二次开发_整图缩放
  • 滁州网站建设费用开发公司网签价格
  • 福州建网站公司最好的营销型网站建设公司
  • 新手入门:一篇看懂计算机基础核心知识
  • 每日算法刷题Day80:10.27:leetcode 回溯11道题,用时3h
  • 建设一个网站的规划广州seo公司如何
  • [强化学习] 第1篇:奖励信号是智能的灵魂
  • 从“看得见“到“看得懂“:监控安全管理的智能进化
  • YOLOv5 核心模块解析与可视化
  • 昆山外贸型网站制作建站科技公司
  • 快速建站框架网站如何做360优化
  • 网站公司做网站网络推广公司介绍
  • 百度网站验证方法室内设计效果图多少钱一张
  • 网站服务器查找wordpress cms主题制作
  • 《Chart.js 柱形图:全面解析与实战指南》
  • 物联网设备运维中的上下文感知自动化响应与策略动态调整
  • JAVA面试汇总(五)数据库(二)
  • 程序员的自我修养(三)
  • 【C++】--list的使用和模拟实现