shell第二课:变量的定义、操作和删除

2015年08月23日 20:33 by:唠吧小站

shell 变量类型

shell中存在三种变量:

1) 局部变量
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2) 环境变量
所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3) shell变量
shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

shell中的变量定义

在shell中定义变量的时候前面不用加$, 如:
  1. bianliang="lao8.org"
注意,变量名和等号之间不能有空格,这其它编程语言不一样。同时,变量名的命名须遵循如下规则:
  • 首字符必须为字母(a-z,A-Z)。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

变量定义举例:
  1. myweb="http://www.lao8.org"
  2. myage=10

shell使用变量的方法

使用的时候在变量前面加"$"即可,如:
  1. myweb="www.lao8.org"
  2. echo $myweb
  3. echo ${myweb}
花括号加不加都行,加花括号是为了帮助解释器识别变量的边界,给所有变量加上花括号,这是个好的编程习惯。

变量可以重复赋值

已定义的变量,可以被重新赋值,如:
  1. myweb="http://www.lao8.org/"
  2. echo ${myweb}
  3. myweb="lao8.org"
  1. echo ${myweb}

定义只读变量

使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

下面的例子定义只读变量,尝试更改只读变量会报错:
  1. #!/bin/bash
  2. readonly myweb='www.lao8.org'
  3. myweb='www.lao8.org 2'
  4. echo $myweb

运行脚本,结果如下:

  1. [root@li411-50 sh]# ./test.agou
  2. ./test.agou: line 4: myweb: readonly variable
  3. www.lao8.org

删除变量

使用 unset 命令可以删除变量。变量被删除后不能再次使用;unset 命令不能删除只读变量。

举个例子:
  1. #!/bin/bash
  2. myweb='www.fansart.com'
  3. unset myweb
  4. echo $myweb