Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2857402
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: Python/Ruby

2013-02-21 19:56:43


一、变量

    变量:C也是 从变量开始学起。shell编程也从变量学起。

    变量三个方面:1、数据类型 2、生存期 3、作用域

1.1 数据类型:变量依据你赋值的类型

    C与Shell对比:

        C: int a="abcd";(错误)

    Shell:

         a="abcdef"a就是字符串类型

        b=3   b就是整型

在默认条件下,所有变量都被看作字符串并以字符串来存储




1.2 变量

    从变量的生存期和作用域角度划分一般使用到得变量有三种。

1.本地变量

        在用户现在的shell生命期的脚本中使用,如果shell启动另一个进程或退出,此值失效。

      =两边千万不要有空格 
      有5种常用的使用方法:

        1.变量赋值

        a="abcd"

        2.显示变量

        echo $a

        3.清除变量

        unset a

        4.显示所有本地shell

         set

        5.只读变量

         name="abc"; readonly name


2.环境变量

        登录进程为父进程,shell中执行的用户进程为子进程。环境变量可用于所有子进程。环境变量最好在profile文件中定义。习惯上,所有环境变量均应该大写。

        有5种常用的使用方法:

        1.变量赋值

        abc="abc";export abc

        2.显示环境变量

        echo $abc

        3.显示所有环境变量

        env

        4.清除环境变量

        unset abc

        5.常用环境变量

        HOME PATH PWD  USER


 3.位置变量

        这个特别适合于执行命令时,传递参数。

        1.位置变量一般用$0--$9

            例如:service httpd start

            $0表示:service      

           $1表示:httpd              

            $2表示:start

        2.$#表示参数的总个数


            使用变量时注意事项:

            在使用C编程的时候,在使用变量时,如果变量没有被赋值就使用则会出现问题。Shell有专门的检测变量是否被设置的方法:

            测试变量是否已经设置

            1.${var:-value}:

                如果变量var未定义,返回一个默认值如果var存在且非空,则表达式${var:-value}的值为$var,如果var未定义,则表达式值${var:-value}为value.

                name1="dong";name2=${name1:-no name};echo $name1 $name2

            unset name1; name2=${name1:-no name};echo $name1 $name2

            2.${var:=value}:

            如果var未定义,设置var的默认值为value

            如果var存在且非空,则${var:=value}的值为$var;如果var为空或未定义,则var被赋值value且表达式值为value。

            3.${var:?mesg}

            捕获未定义变量导致的错误。

            如果var存在且非空,则${var:?value}的值为$var;如果var为空或未定义,则打印mesg并终止脚本。

            4.${var:+mesg}:

            测试一个变量的存在性

            如果var存在且非空,则${var:+mesg}的返回值为mesg;如果var为空或未定义,则返回null


阅读(825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~