第二章 Shell编程之变量
Shell编程之变量
一 Bash变量与变量分类
Bash是Linux中的标准Shell,因此经常称Bash为Shell。
1. 变量命名规则
- 变量名可以由字母、数字、下划线组成,但必须以字母与下划线开头;
- 变量名的长度不能超过255个字符;
- 变量名在有效范围必须唯一;
- 在Bash中,变量的默认类型都字符串型;
2. 变量按照存储类型分类
默认类型是字符串型。
- 字符串型,赋值时单双引号皆可;
- 整形;
- 浮点型;
- 日期型;
二 用户自定义变量
变量名与变量值都是用户自定义的,就是说可以由用户控制修改的。
1. 变量定义
变量名=变量值
注意:"="左右不能有空格。
2. 变量调用
echo是最简单的变量调用,也只能用作输出。
如:echo $变量名
3. 变量叠加
例如:
x=123
x="$x"456
x=${x}789
当echo $x时输出123456789
用处:环境变量的添加,如PATH路径。
4. 变量查看
set
能够查询当前系统运行的所有变量,包括系统环境变量与当前shell的用户自定义变量。
选项:-u ,如果设定此选项,再用echo调用未声明的变量时会报错。
如y变量未被声明赋值,使用echo $y时会打印出空行;如果先使用set -u,再echo $y时会提示不存在此变量的提示。
5. 变量删除
unset
使用方法:unset x,unset并不是删除变量里面的值,而是删除变量,因此变量名前不需要加$。
三 bash环境变量
bash命令可以进入当前shell的子shell,可以通过pstree查看当前所在的shell,可以通过这个方法做后面的环境变量与用户自定义变量生效区域的实验。
1. 环境变量与用户自定义变量的区别
环境变量是全局变量,用户自定义变量是局部变量。
用户自定义变量只在当前的 shell 中生效,环境变量在当前 shell 和这个 shell 的所有子 shell 中生效。
用户可以自定义环境变量,但对系统生效的环境变量名和变量作用是固定的。
2. 用户自定义环境变量
- export 变量名=变量值;
- 变量名=变量值 export 变量名;
3. 查看环境变量
- set 或 declare 查看所有变量
- env 查看环境变量
4. 增加环境变量
- 编写bash脚本;
- 加入到PATH环境变量,用:分隔;
5. 删除环境变量
$ unset 环境变量
6. PS1环境变量
即命令提示符设置的显示,如:[root@qcxiao ~]#
以下相关的指令,注意:需要用set才能查看到PS1。
7. PS2环境变量
作用:当前行,命令显示不完即换行时,可以加以利用。
四 bash语系变量
1. 当前语系查询
- locale
#查询当前系统语系
- LANG:定义系统主语系的变量;
- LC_ALL:定义整体语系的变量;
- locale -a | more 查询所有语系环境;
2. 默认语系
保存在文件:/etc/sysconfig/i18n,这个语系变量表示在下次开机时的语系环境。
五 位置参数变量
1.
- 其中我认为$n有点类似于Java语言的形参;
- 使用$*、$@、$#时必须要用双引号括起来;
六 预定义变量