程序员,我们将解释 BASH 中的定义和用法与 C 语言中有何不同。
2.3.1.BASH 中的变量介绍
我们先来从整体上把握一下 BASH 中变量的用法,然后再去分析 BASH 中变量使用与 C 语
言中的不同。BASH 中的变量都是不能含有保留字,不能含有 "‐" 等保留字符,也不能含有
空格。
2.3.1.1 简单变量
在 BASH 中变量定义是不需要的,没有 "inti" 这样的定义过程。如果想用一个变量,只要
他没有在前面被定义过,就直接可以用,当然你使用该变量的第一条语句应该是对他赋初值
了,如果你不赋初值也没关 系,只不过该变量是空( 注意:是 NULL,不是 0 )。不给变
量赋初值虽然语法上不反对,但不是一个好的编程习惯。好了我们看看下面的例子:
首先用 vi 编辑下面这个文件 hello2:
#!/bin/bash
#givetheinitializevaluetoSTR
STR="HelloWorld"
echo$STR
在上面这个程序中我们需要注意下面几点:
一,变量赋值时,'='左右两边都不能有空格;
二,BASH 中的语句结尾不需要分号(";");
三,除了在变量赋值和在 FOR 循环语句头中,BASH 中的变量使用必须在变量前加"$"符号,
同学们可以将上面程序中第三行改为 "echo STR" 再试试,看看会出什么结果。==>output:
STR
四,由于 BASH 程序是在一个新的进程中运行的,所以该程序中的变量定义和赋值不会改
变其他进程或原始 Shell 中同名变量的值,也不会影响他们的运行。
更细致的文档甚至提到以但引号括起来的变量将不被 BASH 解释为变量,如 '$STR' ,而被
看成为纯粹的字符串。而且更为标准的变量引用方式是 ${STR} 这样的,$STR 自不过是对
${STR} 的一种简化。在复杂情况下(即有可能产生歧义的地方)最好用带 {} 的表示方式。
BASH 中的变量既然不需要定义,也就没有类型一说,一个变量即可以被定义为一个字符串,
也可以被再定义为整数。如果对该变量进行整数运算,他就被解释为整数;如果对他进行字
符串操作,他就被看作为一个字符串。请看下面的例子:
#!/bin/bash
x=1999
let"x=$x+1"
echo$x
x="olympic'"$x
echo$x