一、環(huán)境
成都創(chuàng)新互聯(lián)專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,服務(wù)器托管,服務(wù)器托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。ubuntu14.04 x86_64
二、變量默認(rèn)值
2.1 ${vari:-defaultValue}
當(dāng)var沒有定義時(shí),此時(shí)使用defaultValue, 而vari依然為空,沒有改變值
eg:
在終端上操作
#echo ${name} # //因?yàn)閚ame沒有定義,結(jié)果為空 #echo ${name:-chao ge} #chao ge //沒有定義name,使用默認(rèn)值chao ge #echo ${name} # //依然為空,并未改并name變量的值
2.2 ${vari:=defaultValue}
當(dāng)vari沒有定義時(shí),此時(shí)使用defaultValue, 同時(shí)vari也被賦值為defaultValue
eg:
在終端上操作
#echo ${name} # //因?yàn)閚ame沒有定義,結(jié)果為空 #echo ${name:=chao ge} #chao ge //沒有定義name,使用默認(rèn)值chao ge #echo ${name} #chaoge //name變量的值已經(jīng)被改變
2.3 ${vari:?value}
當(dāng)vari沒有定義時(shí),或者定義了值為空,將在終端報(bào)錯并且退出,用于檢查是否定義以及是否為空
eg.
>echo ${name} > //因?yàn)闆]有定義name,所以輸出為空 >echo ${name:?zhangsan} >bash: name: zhangsan //因?yàn)闆]有定義name,報(bào)錯并退出 >echo ${name:?} >bash: name: 參數(shù)為空或未設(shè)置 >name= //定義name變量,但是值為空 >echo ${name:?} >bash: name: 參數(shù)為空或未設(shè)置 >name=lisi //設(shè)置了name的值 >echo ${name:?} >lisi //正常輸出name的值
2.4 ${vari:+value}
當(dāng)vari定義并且不為空,將用value替換vari的值,否則什么也不做, 與${vari:-value}相反
eg:
>echo ${myhome:+beijing} > //因?yàn)闆]有定義myhome,所以為空 >myhome= //定義myhome,但為空 >echo ${myhome:+beijing} > >myhome=shanghai //設(shè)置變量的值 >echo ${myhome:+beijing} >beijing //此時(shí)myhome定義了并且不為空,則替換為beijing了
三、應(yīng)用
3.1 Makefile
eg: linux內(nèi)核中其中一個(gè)Makefile中的
#Default value head-y := arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o textofs-y := 0x00008000
3.2 函數(shù)默認(rèn)參數(shù)
和c++的默認(rèn)參數(shù)異曲同工之妙
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
這樣就可以讓函數(shù)呈現(xiàn)多態(tài)性
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
新聞標(biāo)題:shell變量默認(rèn)值-創(chuàng)新互聯(lián)
本文URL:http://jinyejixie.com/article38/dpeipp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站排名、網(wǎng)站內(nèi)鏈、微信公眾號、搜索引擎優(yōu)化、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容