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

二.Shell脚本编程

二、Shell脚本语言的变量用法详解
2.1 变量
变量表示命名的内存空间,将数据放在内存空间中,通过变量名引用,获取数据

2.2 变量类型
变量类型:

内置变量:如PS1,PATH,UID,HOSTNAME,HISTSIZE

用户自定义变量

预定义变量

位置变量

不同的变量存放的数据不同,决定了以下:

数据存储方式

参与的计算

表示的数据范围

变量数据类型:

字符串

数值:整型,浮点型(小数)、bash不支持浮点数

2.3 Shell中变量命名法则
不能使用程序中的保留字,如:if,for

只能使用数字,字母及下划线,且不能以数字开头

见名思意,用英文名字,并体现真正含义

统一命名规则:驼峰命名法

变量名大写

局部变量小写

函数名小写

2.4 变量定义和引用
变量的生效范围(变量作用域)

普通变量:生效范围为当前shell进程;对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效

环境变量:生效范围为当前shell进程及其子进程

本地变量:生效范围为当前shell进程中某代码片段,通常指函数

变量赋值:

注意:变量赋值是临时生效,当退出终端后,变量会自动删除,无法持久保存。

变量引用:

2.5 环境变量
环境变量:

可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量。

一旦子进程修改了从父进程继承的变量,将会传递新的值给孙子进程

一般只在配置文件中使用,在脚本中较少使用

课程引入:普通变量生效的范围与环境变量生效的范围

实例

1.声明整数型变量

2.10.2 set命令实现脚本安全
-u:在扩展一个没有设置的变量时,显示错误信息,等同于set -o nounset

-e:如果一个命令返回一个非0退出的状态值(失败)就退出,等同于set -o errexit

-o:option 显示,打开或关闭选项

显示选项:set -o

打开选项:set -o 选项

关闭选项:set +o 选项

-x:当执行命令时,打印命令及其参数,类似bash -x

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

相关文章:

  • 微软开源TTS模型VibeVoice,可生成 90 分钟4人语音
  • 李宏毅NLP-13-Vocoder
  • 中级统计师-统计实务-第四章 专业统计
  • FPGA入门指南:从零开始的可编程逻辑世界探索
  • 【Proteus仿真】点亮小灯系列仿真——小灯闪烁/流水灯/交通灯
  • 常用的20个c++函数
  • 11.1.5 实现文件删除,共享和共享下载排行榜
  • 【GaussDB】排查应用高可用切换出现数据库整体卡顿及报错自治事务无法创建的问题
  • Photoshop - Ps 裁剪并拉直图片
  • 【C++详解】C++11(二) lambda表达式、类型分类、引⽤折叠、完美转发
  • 计算机视觉(四):二值化
  • 如何重置SVN被保存的用户名和密码
  • 基于路测点云标注生成OpenDrive地图的全流程解析
  • TI-92 Plus计算器:函数图像功能介绍
  • ros2bag_py的api小结、丢帧问题对策
  • 第四十九天(springboot模版注入ThymeleafFreemarkerVelocity)
  • 飞牛NAS上部署Markdown文稿编辑器,阅读.md文件同时还可以跨平台访问!
  • 根据Excel数据表快速创建Word表格(标签)
  • JavaScript中的XMLHttpRequest对象分析
  • Docker 存储原理精要
  • s[:] = reversed(s) 和 s = reversed(s)的区别
  • Blender建模:对于模型布线的一些思考
  • FPGA设计杂谈之七:异步复位为何是Recovery/Removal分析?
  • 浅谈 SQL 窗口函数:ROW_NUMBER() 与聚合函数的妙用
  • 深入解析数据结构之单链表
  • 人工智能加速漏洞利用,15分钟即可完成概念验证?
  • 网络:相比于HTTP,HTTPS协议到底安全在哪?
  • go 开发环境配置 air + dlv debug 踩坑之旅
  • AI基础学习周报十一
  • 大模型——利用RAG构建智能问答平台实战