Bash是一门流行在*nix系统下的脚本语言。做为一门脚本语言,变量是一门语言的基本要素,在这篇教程中,咱们将学习Bash中的变量是怎么表示的,以及变量相关的一些语法规则。编程
Bash做为一门编程语言,它经过变量来表示数据。Bash的变量在概念是和咱们平时接触的其余编程语言相似,都是以字符表示的一些列名字标签,经过引用这些名字标签来使用变量所表示的值。经过一个变量,咱们能够引用一块内存区域的值。一个变量的赋值操做,抛开细节,我,咱们能够简单的理解为是为这个名字标签和内存区域建立一个关联。编程语言
在Bash中,变量是无类型的。这个和其余好比C,Java和C++等强类型语言有很大的不一样。学习
代码:spa
var=100 echo "$var" => 100 var="var is not a number" echo "$var" => var is not a number
Bash中,一个变量能够理解为是这个变量的值的占位符。引用这个变量的值得过程,能够简单的理解为是变量替换的过程。在Bash中,变量替换是经过操做符"$"完成的。code
代码:blog
var=100 echo var => var echo $var => 100
看上面的例子,咱们能够看到,经过"$"符号引用一个变量的时候,会得到这个变量的值。而单独使用这个变量名字的时候,在echo命令中,只是得到了这个变量名称的字面值而已,因此"var" 和 "$var"是不一样的。教程
通常状况下,使用"$"符+变量名称来引用变量的值,可是在一些特殊的语句和命令中,咱们能够省略"$"符号,只是用变量名称来引用变量的值。好比:内存
后面在学习到这些内容相关的主题的时候,咱们会看到上面提到的这些不使用"$"符号的状况。字符串
经过双引号(")包裹的字符串中,若是包含了变量替换,那么变量替换是有效的。而包含在单引号(')的字符串中的变量替换,是无效的,变量名称将被做为普通字符串。for循环
代码:
var=100 echo "$var" => 100 echo '$var' => $var
在双引号中的变量进行变量替换的时候,若是变量名称和其余字符中间没有分隔符(通常是空格),那么变量替换就会出现歧义,因此须要另外一种方式的变量替换语法,使用${var}来进行变量替换。
代码:
var=100 echo "$varis100" => # 输出是空的,由于上面的变量替换的是"varis100"这个变量的值,而这个变量在上下文中没有定义,因此是空的 echo "${var}is100" => 100is100
在使用echo命令输出一个变量的时候,须要注意一个问题。一个变量是否被包含在一个双引号中,输出的结果是不一样的。
代码:
var="A B C D" echo $var => A B C D echo "$var" => A B C D
在Bash中,变量赋值的方式有不少种,经过等号(=)来进行变量的赋值是最多见的一种方式。 在使用等号进行赋值的时候,等号两边是不能包含空格的。
代码:
var=100 echo "var = $var" => var = 100
除了使用等号来进行变量赋值之外,还可使用"let"命令来进行赋值。
代码:
let var=100 echo "var = $var" => var = 100
在for循环语句中,也可使用"for ... in ..."的方式给变量赋值。
for var in 10 20 30 do echo $var done => 10 20 30
使用read命令,能够从用户输入中得到值并给变量赋值。
代码:
echo -n "Enter \"var\"" read var echo "The value of var is $var" <= 100 => The value of var is 100
咱们已经学习了Bash中有关变量的一些概念和变量的赋值,引用等语法规则。学会了怎么在一个Bash脚本中建立一个变量,给变量赋值以及经过echo命令输出到终端。