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