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

笔记-Shell特殊变量

时间:2015-11-25 01:12:46      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:shell 特殊变量


    位置变量:

        $0: 获取当前执行shell的文件名称,如果执行脚本带路径那么就包括脚本路径

        $n:  获取当前执行的shell脚本的第ng参数值,n=1..9,当n为0时表示脚本的文件名,如果n大于9,大括号括起来${10}.

     

                    [root@linux-node1 ~]# vim q.sh 
                    echo $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15}


                    输出的结果

                    [root@linux-node1 ~]# sh q.sh {a..z}
                    a b c d e f g h i j k l m n o


        $*:  将所有的命令行所有参数视为单个字符串,等同于 “$1$2$3”,"$*"

        $@: 将命令行每个参数视为单独的字符串,等同于“$!”"$2" "$2"这是将参数传递给其他程序的最佳方式,因为他会保留所有内嵌在每个参数里的任何空白

           注意:上述区别仅限在于加双引号的时候,即“$*”与“$@”

          [root@linux-node1 ~]# set -- "I am" from HuNan

                [root@linux-node1 ~]# echo $#

                3


          

                [root@linux-node1 ~]# for i in "$*";do echo $i;done  有双引号的情况下,当做一个参数输出
                I am from HuNan
                [root@linux-node1 ~]# for i in "$@";do echo $i;done  有双引号的情况下,独立输出
                I am
                from
                HuNan

         例 :

                [root@linux-node1 ~]# for i;do echo $i;done  去掉in变量列表,相当于in “$@”

                I am


                from


                HuNan

                  

          例:

                [root@linux-node1 ~]# for i in $*;do echo $i;done   不加双引号,把所有参数输出,然后第一个参数“I am”也拆开了

                I
                am
            from
            HuNan



        $?: 获取执行上一个指令的返回值(0 为成功,非零为失败) 这个变量很常用

                       例:

                            echo $?

    

        $#:获取当前执行的shell脚本后面的参数总个数。


           企业案 例控制用户传参个数

                   [root@linux-node1 ~]# vim q1.sh

                    [ $# -ne 2 ] && {
                    echo "pls input two number"
                    exit 1                   ---->赋值给当前的shell的$?变量了。

                       }
                    echo "Thanks!"

笔记-Shell特殊变量

标签:shell 特殊变量

原文地址:http://zqingq.blog.51cto.com/6768398/1716551

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