首页 > 系统服务 > 详细

shell 变量默认值

时间:2017-02-23 14:33:04      阅读:283      评论:0      收藏:0      [点我收藏+]

一、环境

    ubuntu14.04 x86_64

   

二、变量默认值

    2.1     ${vari:-defaultValue}

            当var没有定义时,此时使用defaultValue, 而vari依然为空,没有改变值

        eg:
             在终端上操作

          

  #echo ${name}
  #            //因为name没有定义,结果为空
  #echo ${name:-chao ge}
  #chao ge        //没有定义name,使用默认值chao ge
  #echo ${name}
  #           //依然为空,并未改并name变量的值



    2.2    ${vari:=defaultValue}

            当vari没有定义时,此时使用defaultValue, 同时vari也被赋值为defaultValue

            eg:

              在终端上操作

           

  #echo ${name}
  #            //因为name没有定义,结果为空
  #echo ${name:-chao ge}
  #chao ge        //没有定义name,使用默认值chao ge
  #echo ${name}
  #chaoge         //name变量的值已经被改变


        三、应用

            3.1 Makefile

                eg: linux内核中其中一个Makefile中的     

   #Default value
   head-y        := arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o
    textofs-y    := 0x00008000

            3.2 函数默认参数

                    和c++的默认参数异曲同工之妙

                default_parameters.cpp

     #include<iostream>
     void func(int i=1, double d=2.0, float f=3.0)
      {
         std::cout << i <<", " <<d <<", " << f << std::endl;
      }
      int main(int argc, char *args[]) 
     {
         func();
       func(10);
       func(10, 99.9);
       func(20, 33.3, 9.3f);
                     
             return 0;
      }

                #g++ default_parameters.cpp

                # ./a.out
                1, 2, 3
                10, 2, 3
                10, 99.9, 3
                20, 33.3, 9.3

            default_parameters.sh

        

    #!/bin/bash
  
    func()
   {
    echo "${1:-10}, ${2:-10.2}, ${3:-zhangsan}" 
    }
  
   func
   func 23
   func 23 12.0
   func 34 23.0 lisi

        #bash default_parameters.sh

        10, 10.2, zhangsan
        23, 10.2, zhangsan
        23, 12.0, zhangsan
        34, 23.0, lisi        


        这样就可以让函数呈现多态性






本文出自 “风雪舞者” 博客,请务必保留此出处http://happytree007.blog.51cto.com/6335296/1900383

shell 变量默认值

原文:http://happytree007.blog.51cto.com/6335296/1900383

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!