当前位置: 首页 > 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.xdnf.cn/news/1414405.html

相关文章:

  • 在AlmaLinux或CentOS 8上编译安装ZLMediaKit流媒体服务器
  • CatBoost vs XGBoost:两大Boosting框架的全面对比
  • HTML5国庆网站源码
  • gdsfactory安装以及和klayout联调
  • 自学嵌入式第三十一天:Linux系统编程-进程间通信
  • 《程序员修炼之道》第七八九章读书笔记
  • Asible管理变量和事实和实施任务控制
  • 新手首次操作SEO核心要点
  • 深度学习周报(8.25~8.31)
  • 雪花算法生成分布式ID
  • C++ STL之哈希封装实现unordered_map/set
  • 第4章从一条记录说起-InnoDB记录结构
  • Redis六大常见命令详解:从set/get到过期策略的全方位解析
  • 如何用熵正则化控制注意力分数的分布
  • 【CVTE】C++开发 (提前批一面)
  • 【AI智能体】Dify 实现自然语言转SQL操作数据库实战详解
  • 【Spring】ApplicationListener监听器
  • 【芯片测试篇】:LIN总线
  • AI 赋能 Java 开发效率:全流程痛点解决与实践案例(一)
  • Linux/UNIX系统编程手册笔记:用户和组、进程凭证、时间以及系统限制和选项
  • 利用DeepSeek编写验证xlsx格式文件中是否启用sharedStrings.xml对读写效率影响python程序
  • DRF快速构建RESTful API指南
  • redis详解 (最开始写博客是写redis 纪念日在写一篇redis)
  • C++内存序不迷茫:从CPU缓存一致性理解Memory Order
  • Wi-Fi技术——初识
  • 如何绕过 disable-devtool.js 打开控制台
  • C语言中如何使用NULL
  • 配置 Kubernetes Master 节点不可调度的标准方法
  • stm32F4挂载emmc以及重定义printf
  • ThinkPHP8学习篇(五):数据库(一)