个性化阅读
专注于IT技术分析

Linux shell编程:基本shell变量的定义和使用介绍

上一章Linux shell编程请查看:shell脚本介绍及其操作

在本章中我们将学习如何在Unix shell编程中使用Shell变量。变量是我们赋值的字符串,赋值可以是数字、文本、文件名、设备或任何其他类型的数据。变量只不过是一个指向实际数据的指针,shell允许你创建、分配和删除变量。

1、变量名

变量名只能包含字母(a到z或a到z)、数字(0到9)或下划线(_),按照惯例Unix shell变量的名称是大写的,下面的例子是有效的变量名:

MY_VAR
_VAR1
TOKEN_VAR2

下面是无效变量名的示例:

2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!

不能使用其他字符(如!、*或-)的原因是这些字符对于shell有特殊的含义。

2、定义变量

Linux shell变量定义如下:

variable_name=variable_value

例如:

VAR_NAME = "sample"

上面的例子定义了变量名VAR_NAME,并将值“sample”赋给它。这种类型的变量称为标量变量,标量变量一次只能容纳一个值,Shell允许你在变量中存储任何值例如:

STR_VAR = "string"
NUMBER = 158

3、访问变量

要访问存储在变量中的值,需要在变量名前面加上美元符号($),下面的脚本将访问定义的变量名的值并在STDOUT上打印它:

#!/bin/sh

NAME="Espanol"
echo $NAME

4、只读变量

Shell通过使用只读命令将变量标记为只读。变量被标记为只读后,其值不能更改。例如下面的脚本在试图更改NAME的值时生成错误:

#!/bin/sh

NAME="Butterfly"
readonly NAME
NAME="Beatle"

上面的脚本将生成以下结果:

/bin/sh: NAME: This variable is read only.

5、取消或删除变量

取消或删除变量将指示shell从其跟踪的变量列表中删除该变量。取消变量后就不能访问变量中的存储值,下面是使用unset命令取消已定义变量的语法:

unset variable_name

上面的命令取消已定义变量的值,下面是一个演示命令如何工作的简单示例:

#!/bin/sh

NAME="Peppa"
unset NAME
echo $NAME

上面的示例没有打印任何内容,另外注意不能使用unset命令取消标记为只读的变量。

6、变量类型

当shell运行时有三种主要的变量类型:

  • 局部变量——局部变量是当前shell实例中的变量,它不能用于由shell启动的程序,它们是在命令提示符处设置的。
  • 环境变量——shell的任何子进程都可以使用环境变量。有些程序需要环境变量才能正常运行,通常shell脚本只定义它所运行的程序需要的那些环境变量。
  • Shell变量—Shell变量是由Shell设置的特殊变量,Shell需要它才能正常工作,其中这些变量有些是环境变量有些是局部变量。
赞(0)
未经允许不得转载:srcmini » Linux shell编程:基本shell变量的定义和使用介绍

评论 抢沙发

评论前必须登录!