shell 脚本编程 二:变量

一、命名

1、命名只能使用英文字母,数字和下划线,首个字符不能以数字开头

2、中间不能有空格,可以使用下划线(_)

3、不能使用标点符号

4、不能使用 bash 里的关键字(可用 help 命令查看保留关键字)

二、数据类型

1、字符串:字符串可以用单引号,也可以用双引号,也可以不用引号(建议使用双引号,因为双引号里可以有变量和特殊字符,可以按照变量和特殊字符去使用)。

2、布尔类型:布尔型变量的定义与字符串一样,只是它的值只能是 truefalse 两者之一。

3、整数:使用 $[] 包含待运算的数学公式(第一种方式)。使用数学运算命令 expr(evaluate expression)(第二种方式)。

4、浮点:浮点运算使用 bc 计算器进行运算。

5、数组Shell 支持一维数组(不支持多维数组),并且没有限定数组的大小。数组元素的下标由 0 开始编号,利用下标可以获取数组中的元素,下标可以是整数或算术表达式,其值应大于或等于 0。

特别说明

1、在 Shell 中所有的变量默认都是字符串型

2、特别说明Shell 脚本能够处理数值型数据,但并没有像 C 语言那样区分字符型、整型、浮点型,而是统统存储为字符串。

三、变量作用域

作用域:变量的有效范围(可以使用的范围)。

四、变量类型下

1、本地变量:只针对当前 shell 进程。

2、环境变量:也称为全局变量,针对当前 shell 以及任意子进程,环境变量也分自定义内置两种。

3、局部变量:在 shell 脚本shell 函数中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

五、特殊变量

1、$0:当前脚本的文件名。
2、$n:n是一个数字,表示第几个参数。
3、$#:传递给脚本或函数的参数个数。
4、$*:传递给脚本或函数的所有参数。当被双引号""包含时,会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。
5、$@:传递给脚本或函数的所有参数。当被双引号""包含时,仍然将每个参数都看作一份数据,彼此之间是独立的。。

六、特殊状态变量

1、$?:上个命令的退出状态,或函数的返回值,0正确,非0失败。

2、$$:当前 Shell 脚本的进程ID。

3、$!:上一次后台进程的PID。

4、$_:获取上一次命令传入的最后一个参数。

七、变量使用

使用变量的时,用英文符号"$"取变量值,对于较长的变量名,建议加上{ }花括号,帮助解释器识别变量的边界。

八、环境变量设置

环境变量一般是指用 export 内置命令导出的变量,用于定义 shell 的运行环境,保证 shell 命令的正确执行。

shell 通过环境变量确定登录的用户名、PATH 路径、文件系统等各种应用。

环境变量可以在命令行中临时创建,但用户退出 shell 终端,变量即丢失。如果让变量永久生效,需要修改环境变量配置文件。配置文件说明如下:

  • 用户个人配置文件 ~/.profile~/.bashrc
  • 全局配置文件 /etc/profile/etc/bash.bashrc,且系统建议最好创建在 /etc/profile.d/ 下,而非直接修改主文件,修改全局配置文件,影响所有登录系统的用户。

1、检查设置环境变量的命令

  • set:输出所有变量,包括全局变量、局部变量。
  • env:只显示全局变量。
  • declare:输出所有的变量,如同 set
  • export:显示和设置环境变量值。

2、撤销环境变量

  • unset 变量名:删除变量或函数。

九、变量修饰符

1、readonly只读变量,只要 shell 结束,只读变量失效。

2、local:声明局部变量,多在函数内部使用。

十、特别说明

1、调用 bash 会产生一个子 shell,因此,不保留当前 shell 变量。

2、调用 source 或者点符号是在当前 shell 环境加载脚本,因此,保留当前变量。

3、shell 使用 Linux方式,将命令使用反引号括起来。

4、变量定义时候,变量名、等号和值之间不能有空格

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值