红联Linux门户
Linux帮助

shell程序设计的语法 -- <变量>

发布时间:2008-06-17 22:13:14来源:红联作者:neverthesame
自己最近研究了一下shell程序设计,我将对它的理解分享给大家.

shell变量的特点:
shell变量使用之前不需要事先对它进行声明,在第一次使用它的时侯创建它。
shell变量默认情况下,它是作为保存字符串的。即使它被赋予数值也是保存为字符串,shell和其它工具程序会把“数值”字符串转换成正确方式进行操作。
shell变量对大小写敏感,即区分大小。
变量的使用:
使用$加变量名来获取变量的内容,如$var
使用echo命令来显示变量的内容,如echo $var
使用read命令来为变量名输入数据,如read var
变量的赋值:
var=myname 这时var的值是myname
var=“myname” 这时var的值是myname
var=‘myname’ 这时var的值是myname
var=6+1 这时var的值是6+1
注意在赋值的时侯等号的两边不能有空格,要紧挨着。否则,shell会把它看作是命令而不变量。如var =6+1,shell把它看作是var命令,=6+1是var命令的参数。
双引号使用:
在双引号中使用$var会进行名-值的转换。如果要将$var原样输出时,可以用‘\‘将$作为一普通字符,如\$var。同样,要在双引号内使用双引号,也可以这样做,如\”。注意”$var1234”的情况。
单引号使用:
在单引号中使用$var不会进行名-值的转换。同样,要在单引号中使用单引号也可以使用’\’,如\’。
环境变量:在shell脚本程序开始执行的时侯,某些变量会根据当前环境中的值进行初始化。通常这些变量的变量名为大写,为了以用户程序相区别。
环境变量
说明

$HOME 当前用户登录的子目录

$PATH 以冒号分隔的用来搜索命令子目录清单

$PS1 命令提示符,通常是’$’字符

$PS2 辅助提示符,用来提示后续输入,通常是‘>’字符

$IFS 输入区的分隔符

$0 shell脚本程序的名字

$# 传递到脚本程序的参数的个数

$$ 脚本程序的进程ID

参数变量:在shell脚本程序调用的时侯,还带有一些参数,这时就会产生一些额外变量,这些变量就是参数变量。
参数变量
说明

$1,$2,… 参数1,参数2,…

$* 一个全体参数组成的清单,这是一个独立的变量,各参数之间用环境变量IFS中的第一个字符分隔开。

$@ “$*”的一种变量,它不使用IFS环境变量。
文章评论

共有 6 条评论

  1. qiannian521 于 2009-08-08 11:50:25发表:

    学习学习

  2. js001sdx 于 2009-08-07 15:32:58发表:

    学习中

  3. coolwind 于 2009-06-03 19:38:39发表:

    不错,不知道变量是否只能进行整型算术运算,浮点数可不可以?

  4. hill480480 于 2009-06-02 13:26:55发表:

    学习学习

  5. lyq617617 于 2008-07-09 10:35:41发表:

    不错,学习了还有
    声明一个整型变量: # declare -i sum
    声明一个全局变量: # x=5;export x

  6. verytow 于 2008-06-17 23:33:49发表:

    学习一下