Shell脚本--变量(转)

 

 

shell中有三种变量:系统变量,环境变量,用户变量,其中用户变量用得最多,系统变量多是用在对参数判断和命令返回值判断的使用,环境变量则多是用在程序运行的时候.

1)     系统变量:

$n: $1表示第一个参数,$2表示第二个参数...

$#:命令行参数的个数

$0:当前程序的名称

$?:前一个命令或函数的返回码

$*:参数参数2...”形式保存所有参数

$@:参数1””参数2”...形式保存所有参数

$$:本程序的PID

$!:上一个命令的PID                               

 

 

2)     用户变量:

     不管系统变量有多少,对于需求来说总是不够的,用户变量是最常用到的变量,使用也十分简单..

     用户定义的变量必须有字母数字和下划线组成,并且第一个字符不能为数字,对大小写敏感,对于用户变量,可按如下方式赋值:

Name=”spring”

在引用变量时需要加’$’符号.变量之间也可以相互赋值..

Name=”spring”

SPRING=$Name

echo “Hello,$SPRING!”

输出结果就是:Hello,spring!

注意:变量和’=’之间不要有空格,’=’和赋值之间也不要有空格,否则shell不会认为变量被定义.

一些技巧:

1.可以使用变量和其他的字符组成新的字,这时需要把变量用{}括起来:

STA=Satur

echo “Today is ${STA}day.”

输出结果是:Today is Saturday.

有时候为了避免变量名和别的字符相混淆,最好养成习惯把变量名用{}括起来

2对于未赋值的变量,shell以空值对待,用户也可以用unset命令清除给变量赋的值.

  #!/bin/sh

  echo “a=$a”

  a=2

  echo “a=$a”

  unset a

  echo “a=$a”

shell,有一个和C++const关键字等同的关键字”readonly”.

  readonly a=2  //变量就不可改了

3.shell中的数组:建议不要使用数组,若数据结构很复杂,那么就选择其他语言吧!

 

 

3)     shell环境变量

shell环境变量就是所有的shell程序都会接受的参数,shell程序启动时,都会接收一组变量,这组变量就是环境变量.常用的环境变量是:

PATH:命令搜索路径,以冒号为分隔符,注意与DOS下不同的是,当前目录不在系统路径里

HOME:用户home目录的路径名,cd命令的默认参数

COLUMNS:命令编辑模式下可使用的命令行的长度

EDITOR:默认的行编辑器

VISUAL:默认的可视编辑器

FCEDIT:命令fc使用的编辑器

HISTFILE:命令历史文件

HISTSIZE:命令历史文件中最多可包含的命令条数

IFS:定义shell使用的分隔符

LOGNAME:用户登录名

MAIL:指向一个需要shell监视其修改时间的文件,当该文件修改后,shell将发消息You have mail给用户

MAILCHECK:shell检查MAIL文件的周期,单位是秒

MAILPATH:功能与MAIL类似,但可以是一组文件,以冒号分隔

SHELL:shell的路径名

TERM:终端的类型

TMOUT:shell自动退出的时间,若为0则禁止shell自动退出

PS1:主命令提示符

PS2:二级命令提示符,命令执行过程中要求输入数据时用

PS3:select的命令提示符

PS4:调试命令提示符

MANPATH:寻找手册页的路径,以冒号分隔

LD_LIBRARY_PATH:寻找库的路径,以冒号分隔

如果你希望你定义的变量让其他所有的shell程序使用,也就是定义新的环境变量的话,使用export关键字就可以了.

export PATH=/home/swliao/bin:$PATH   //往环境变量PATH中添加路径/home/swliao/bin

posted on 2013-07-08 16:17  Nickleback  阅读(171)  评论(0)    收藏  举报