Shell(Bash)变量及定义规范
什么是变量呢?从字面上来看就是可以变的量。举个例子,我们小时候都做过数学的应用题,经常定义 x 的值是某个数,如果换了一道题,还是定义 x 的值,但是 x 的值就不和第一道题相同了,这个 x 就是变量。
变量是计算机内存的单元,其中存放的值可以改变。当 Shell 脚本需要保存一些信息时,如一个文件名或一个数字,就把它存放在一个变量中。
每个变量都有一个名字,所以很容易引用它。变量可以定制用户本身的工作环境。使用变量可以保存有用信息,使系统获知用户相关设置。变量也可以用于保存暂时信息。
那么,应该如何设置变量呢?其实非常简单,命令如下:
1) 变量名可以由字母、数字和下画线组成,但是不能以数字开头。如果变量名是"2name",则是错误的。
2) 在 Bash 中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型。比如:
3) 变量用等号"="连接值,"="左右两侧不能有空格。这是 Shell 语言特有的格式要求。在绝大多数的其他语言中,"="左右两侧是可以加入空格的。但是在 Shell 中命令的执行格式是"命令 [选项] [参数]",如果在"="左右两侧加入空格,那么 Linux 会误以为这是系统命令,是会报错的。
4) 变量值中如果有空格,则需要使用单引号或双引号包含,如 test="hello world!"。双引号括起来的内容"$"和反引号者都拥有特殊含义,而单引号括起来的内容都是普通字符。
5) 在变量值中,可以使用转义符"\"。
6) 如果需要増加变量值,那么可以进行变量叠加。 例如:
7) 如果要把命令的执行结果作为变量值赋予变量,则需要使用反引号或 $() 包含命令。例如:
8) 环境变量名建议大写,便于区分。
变量是计算机内存的单元,其中存放的值可以改变。当 Shell 脚本需要保存一些信息时,如一个文件名或一个数字,就把它存放在一个变量中。
每个变量都有一个名字,所以很容易引用它。变量可以定制用户本身的工作环境。使用变量可以保存有用信息,使系统获知用户相关设置。变量也可以用于保存暂时信息。
那么,应该如何设置变量呢?其实非常简单,命令如下:
[root@localhost ~]# name=sc
#定义变量name的值
[root@localhost ~]# echo $name、
sc
#查询变量的值
1) 变量名可以由字母、数字和下画线组成,但是不能以数字开头。如果变量名是"2name",则是错误的。
2) 在 Bash 中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型。比如:
[root@localhost ~]# aa=1+2
[root@localhost ~]# echo $aa
1+2
3) 变量用等号"="连接值,"="左右两侧不能有空格。这是 Shell 语言特有的格式要求。在绝大多数的其他语言中,"="左右两侧是可以加入空格的。但是在 Shell 中命令的执行格式是"命令 [选项] [参数]",如果在"="左右两侧加入空格,那么 Linux 会误以为这是系统命令,是会报错的。
4) 变量值中如果有空格,则需要使用单引号或双引号包含,如 test="hello world!"。双引号括起来的内容"$"和反引号者都拥有特殊含义,而单引号括起来的内容都是普通字符。
5) 在变量值中,可以使用转义符"\"。
6) 如果需要増加变量值,那么可以进行变量叠加。 例如:
[root@localhost ~]#test=123
[root@localhost ~]#test="$test"
456
[root@localhost ~]# echo $test
123456
#叠加变量test,变量值变成了123456
[root@localhost ~]#test=${test}789
[root@localhost ~]# echo $test
123456789
#再叠加变量test,变量值变成了123456789
7) 如果要把命令的执行结果作为变量值赋予变量,则需要使用反引号或 $() 包含命令。例如:
[root@localhost ~]# test=$(date)
[root@localhost ~]# echo Stest
2013年10月21日 星期一20:27:50 CST
8) 环境变量名建议大写,便于区分。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频