本地变量:
本地变量是用户现在的shell生命期的脚本使用,这个值只在当前的用户shell生命期有意义,如果在shell中启动另一个进程或退出,此值将无效,用户不能对其他的shell或者进程设置此变量有效。
使用变量时,用“{ }”将变量括起来,可以防止shell误解变量值,但并非一定要使用“{ }”,若变量值包含了空格,则必须使用“ ”括起来。
显示变量:
echo $变量名 //变量名的值里可以包含其它的变量,如A=“THE”, B=“H$A”, echo $B。
清除变量:
unset $变量名
测试变量是否已经设置:
${变量名:=值} //如果是字符串要加 “”,若已设置或者初始化变量,则使用它,如果没有设置,则取新值。
设置只读变量:
readonly 变量名
环境变量:
环境变量用于所有用户进程(常称为子进程),登陆进程成为父进程,shell中执行的用户进程均为子进程,环境变量可以在命令行中设置,但用户注销时值将会丢失,最好在.profile文件中定义。系统管理员可能在/etc/profile文件中已经设置了一些环境变量,每次登陆时都将被初始化。
传统上,所有环境变量应用于用户进程前,必须用export命令导出。
设置环境变量:
variable_name=value; export variable_name
或者 :
variable_name=value;
export variable_name
嵌入shell变量:
Brourne shell 有一些预留的环境变量名,这些变量名不能用作其他用途,通常在/etc/profile中建立这些嵌入的环境变量,但也不完全是嵌入shell变量列表:
1、CDPATH :改变目录路径变量,保留一系列由冒号隔开的路径名。用于cd命令,如果设置了CDPATH,cd一个目录时,首先查找CDPATH,如果CDPATH中有这个目录,则此目录成为当前工作目录。
例 :
CDPATH=:/home/dave/bin : /usr/local/apps; export CDPATH
如果要进入“/usr/local/apps”目录中,因为在CDPATH变量中已经设置这个路径,所以只要:
cd apps 即可进入“/usr/local/apps”目录中,不用再特地输入前面的“/usr/local”绝对路径。
2、EXINIT :EXINIT变量保存使用vi编辑器时的初始化选项。
例 :
调用vi时,要显示行号,且在第10个空格加tab键。
EXINIT='set nu tab=10';export EXINIT
即设置完成,使用vi打一个文件,vi编辑器的初始状态如上所述。
3、HOME :通常定位于passwd文件的倒数第2列,用于保存用户的自身文件。设置了HOME目录,可以cd命令进入它。
例 :
HOME=“/home/dave”;export HOME
无论在哪个目录中,使用命令“cd ”,即可进入“/home/dave”中。
4、IFS :用作shell指定的缺省域分隔符。原理上域分隔符可以是任意字符,但缺省通常为空格、新行或tab键。
IFS在分隔符文件或变量中各域时很有用,即在查的内容中以哪部分内容为分隔,
例:
echo $PATH 显示:/usr/local/bin:/usr/sbin:/usr/bin
export IFS=:
echo $PATH 显示:/usr/local/bin /usr/sbin /usr/bin
5、LOGNAME:此变量保存登录名,应该为缺省设置。
6、MAIL:MAIL变量保存邮箱路径名
7、MAILCHECK:缺省为每60秒检查新邮件,但如果不想频繁检查,可以自己设置,如设置2分钟检查一次,
MAILCHECK=120;export MAILCHECK
8、PATH:PATH变量保存进行命令或者脚本查找的目录顺序。
9、PS1:缺省对超级用户#,其他为$。
10、TERMINFO:终端初始化变量保存终端配置文件的位置。
11、$? :返回状态值,成功为0,失败为1。
引号使用:
引号分为:双引号、单引号、反引号、反斜线。
双引号 :
双引号可引用除字符“$、`、\ ”外的任意字符或字符串。
单引号:
单引号与双引号类似,如果屏蔽了其特殊含义,会将引号里的所有字符,包括引号都作为一个字符串。例:
GIRL='girl'
echo "The ' $GIRL' did well"
显示:The ' girl ' did well
反引号:
用于设置系统命令的输出到变量,shell将反引号中的内容作为一个系统命令,并执行其内容。例:
echo `date` //输出显示时间
显示 :Sun May 16 16:40:19 GMT 1999
path=`pwd` //将当前路径值赋给变量path
反斜线:
即屏蔽其特殊含义。例:
echo $$
显示: 288 //显示进程ID号
echo \$$
显示: $$ //显示字符,屏蔽显示进程ID的特殊含义
expr用法:
expr命令一般用于整数值计算,但也可以用于字符串。
expr 10 + 10 //显示 :20
expr 10 \* 10 //显示100,对于乘法时,要使用“\”屏蔽掉“*”的特殊功能。
expr 用于测试数字,例:
expr 10 = 10 //显示:1
expr 10 = 11 //显示:0
expr 用于测试字符串,例:
variable=hello;
expr $variable = "hello" //显示:1
expr可以返回其本身的退出状态,1为成功,0为失败。