Bash腳本中括號和反引號的使用
在 Bash 腳本中,我們經(jīng)常需要引用變量或者命令的執(zhí)行結(jié)果來作為文件的名字或者日志的輸出,在腳本或者 Shell 中我們可以使用反引號 或者括號 () 來獲取到變量的內(nèi)容
示例
示例 1
獲取日期的輸出
echo `date` # output 2021年 01月 05日 星期二 15:21:23 CST
echo $(date) # output 2021年 01月 05日 星期二 15:21:32 CST
通過使用反引號或者括號我們可以將命令的輸出做為腳本中的內(nèi)容輸入,同樣可以使用命令的參數(shù)來格式化輸出
示例 2
獲取 年-月-日 格式的日期
echo `date +%F` # output 2021-01-05
echo $(date +%F) # output 2021-01-05
討論
在 Bash 中反引號和括號代表命令輸入,所以在腳本中我們只能使用反引號和括號來獲取命令的執(zhí)行和輸出結(jié)果,而不能使用腳本中聲明的變量。而使用 $ 和 ${} 可以獲取腳本中聲明的變量而不能獲取命令的輸入
#!/usr/bin/bash variable=name # use `` to output variable echo `variable` # use $ to output variable echo $variable # use $() to output variable echo $(variable) # use ${} to output variable echo ${variable}
執(zhí)行的結(jié)果報錯
▶ ./test
./test:行6: variable: 未找到命令
name
./test:行12: variable: 未找到命令
name
總結(jié)
1).(點)與source命令一樣,從文件中讀取并執(zhí)行命令,無論該文件是否都有可執(zhí)行權(quán)限都能夠正確的執(zhí)行。且是在當(dāng)前shell下執(zhí)行,而不是產(chǎn)生一個子shell來執(zhí)行(我們通常使用“./filename.sh”去執(zhí)行一個文件是在當(dāng)前shell下產(chǎn)生一個子shell去執(zhí)行的)
2): 該命令什么都不做,但執(zhí)行后會返回一個正確的退出代碼,即exit 0,類似于pass
3)() 將多個命令組合在一起執(zhí)行,相當(dāng)于一個命令組。
4){} 和()類似,也是將多個命令組合在一起。它們之間的區(qū)別是,()是在產(chǎn)生的子shell下執(zhí)行,而{}是在當(dāng)前的shell下執(zhí)行。
5)[] 與test命令一樣,用于比較值以及檢查文件類型
6)[[]]可以說是[]的“增強版”,它能夠?qū)⒍鄠€test命令支持的測試組合起來
7)(())專門來做數(shù)值運算,如果表達式求值為 0,則設(shè)置退出狀態(tài)為 1;如果求值為非 0 值,則設(shè)置為 0。
到此這篇關(guān)于Bash腳本中括號和反引號的使用的文章就介紹到這了,更多相關(guān)Bash 括號和反引號內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。