什么是变量?
变量最初来源于数学,指的是非固定的值可变化的数通常用拉丁字母表示。在计算机中变量它依旧指的是可变化的数,只不过表现形式有些变化。它指的是变量名+所指向的内存空间。
变量的特点
变量分强类型变量,与弱类型变量
强类型变量:变量需事先声明且需提前定义其变量存储格式
弱类型变量:不需事先声明,不需定义变量存储格式。
bash把所有变量统统视作字符型;bash中的变量无需事先声明,相当于,把声明和赋值过程同时实现。
变量名的命名规范:
变量名只能包含数字,字母和下划线,而且不能以数字开头。
其命名要求见名知义,命名机制遵循某种法则(驼峰法则);不能使用程序的保留字:if,else,then,while,for...
bash的变量类型及其使用格式
本地变量,环境变量,局部变量,位置参数变量,特殊变量
变量引用格式:$VAR、${VAR}
………………………………………………………………………………………………………………………
本地变量:作用域仅为当前shell进程
变量赋值:name=‘value’
value有如下引用类型
1、直接字符串引用,格式:name="CHARS"
1 2 3 |
|
2、变量引用,格式:name=“$VAR”
1 2 3 |
|
3、命令引用,格式:name=`COMMAND` | name=$(COMMAND)
1 2 3 4 5 6 |
|
“”:弱引用,其中的变量引用会被替换为变量值;
1 2 3 |
|
‘’:强引用,其中的变量引用不会被替换为变量值,而保持原字符串;
1 2 3 |
|
命令set用于显示已定义的所有变量
撤销已定义的变量,格式:unset 变量名
1 2 3 4 5 |
|
注:在刚接触bash变量时特别容易搞错的就是变量的使用格式,有时候该命令引用却忘记加``或$(),还有就是强引用与弱引用的使用时机。
下面以例子说明本地变量的作用范围,使用命令bash进入子shell
1 2 |