1)Shell变量的名字可以由数字、字母和下划线组成,并且只能以字母或者下划线开头,如u_1,a12。

        Shell变量有环境变量和用户自定义变量两种类型。在使用变量时变量名前加“$”。

Shell的环境变量用来保存系统状态或环境参数的变量。

Shell的系统变量是一种特殊的环境变量,主要在对参数判断和命令返回值判断时使用。

用户自定义变量通常在设计Shell脚本程序时使用。 

2)变量赋值 

如:u_1=SystemV

     u_2=“UNIX SystemV”  含空格或制表符要用引号括起来。

可以有如下语句(多个赋值、迭代赋值):

a=$b b=$c c=“UNIX SystemV” 

3)变量的访问及参数替换

    引用变量需要在变量名前加$符号。也可以用{}将变量括起来。

如:%echo $u_1

      %echo ${u_1}  变量的替换,符号有挤掉

      %echo ${u_1}tm

      %echo “$u_1”    变量的引用,原样

如a='1  2      3',不同的引用方式会用差异。在命令输出的引用上要注意

4)shell命令中引号的使用

◈单引号‘’:单引号中的内容被看成纯字符串信息,不含有shell命令中的特殊意义。

◈双引号“”:双引号内的特殊字符仍作为shell中的含义解释,可与引号中的字符串结合起来使用。  

◈反引号``:反引号括起来进行变量赋值时,表示变量中存放的是执行命令的结果。

例:file=report

 echo ‘the time is `date`,the file is $file’

      屏幕上会显示:The time is `date`,the file is $file

执行echo “The time is `date`,the file is $file.”

     执行后系统会显示:

  The time is wed Aug 16 15:11:42  Roc 2000,the file is report。 

5)变量的作用域

未做说明shell变量都是局部变量,外部变量用export说明

例:$ ux=UNIX

    $ echo $ux

    $sh

    $echo $ux

    $exit

    $echo $ux

    $export  ux

    $sh

    $echo $ux

6) shell的预定义变量和环境变量  

 预先设定的默认的系统变量即预定义变量,自定义变量时所引用的变量名 要同这些预定义变量的名称加以区别。  

C shell, B-shell常用预定义变量及环境变量定义表

 变量的作用        Sh变量 C shell变量 环境变量

   用户名     user   USER

   用户注册目录 HOME    home   HOME

   命令访问路径 PATH   Path   PATH

   Cd命令路径 CDPATH  Cdpath

   系统提示符 PS1   Prompt

   辅助提示符 PS2

   终端类型       TERM   term   TERM

   内定运行的shell SHELL  shell