一、环境
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
原文:http://happytree007.blog.51cto.com/6335296/1900383