码迷,mamicode.com
首页 > 系统相关 > 详细

shell (一) 变量

时间:2015-08-26 13:47:28      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

第一个 shell


    #!/bin/bash
    echo "Hello World !"


    “#!” 固定标记  用来指定脚本用哪个解释器来解析



脚本必须要有执行权限


    chmod +x ./test.sh  增加执行权限    
    ./test.sh           执行脚本  ( 执行脚本 输入 ./test.sh  而不是 test.sh )



定义变量


    定义变量时 变量名不加美元符号 $    如 : variableName="value"
    注意 变量名和等号之间不能有空格
    


命名规则
    

    首个字符必须为字母 (a-z,A-Z)
    中间不能有空格 可以使用下划线 ( _ )
    不能使用标点符号
    不能使用bash里的关键字 ( 可用help命令查看保留关键字 )


    
使用变量


    使用一个定义过的变量 只要在变量名前面加美元符号 $   如:  echo $your_name    echo ${your_name}
    
    变量外边的 {} 可选的 加不加都行 帮助解释器识别变量 如 :   echo "this is a ${one}abc"
    
    推荐给所有变量加上花括号
    

    
只读变量


    使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变

    myUrl="abc"
    readonly myUrl
    myUrl="drf"    
    
    运行则会报错 : This variable is read only.
        
    

删除变量


    使用 unset 命令可以删除变量
    
    unset variable_name
    

    
变量类型


    运行shell时,会同时存在三种变量
    

    1) 局部变量
    局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量
    

    2) 环境变量
    所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量
    

    3) shell变量
    shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行




shell参数
    

    执行脚本时可向脚本内传入参数  如 : ./test.sh aaa bbb   传入两个参数 第一个 aaa 第二个 bbb
    脚本内使用参数 使用 $n     n是一个数字 表示第几个参数 例如 第一个参数是$1 第二个参数是$2
    
    


特殊变量


        $0    当前脚本的文件名
        $n    传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2
        $#    传递给脚本或函数的参数个数。
        $*    传递给脚本或函数的所有参数。
        $@    传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到
        $?    上个命令的退出状态,或函数的返回值
        $$    当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID
    
    


$* 和 $@ 的区别



    $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。

    但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数


  

 

shell (一) 变量

标签:

原文地址:http://www.cnblogs.com/thinkxmg/p/4760123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!