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í)行。且是在當前shell下執(zhí)行,而不是產(chǎn)生一個子shell來執(zhí)行(我們通常使用“./filename.sh”去執(zhí)行一個文件是在當前shell下產(chǎn)生一個子shell去執(zhí)行的)
2): 該命令什么都不做,但執(zhí)行后會返回一個正確的退出代碼,即exit 0,類似于pass
3)() 將多個命令組合在一起執(zhí)行,相當于一個命令組。
4){} 和()類似,也是將多個命令組合在一起。它們之間的區(qū)別是,()是在產(chǎn)生的子shell下執(zhí)行,而{}是在當前的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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Shell腳本實現(xiàn)判斷IP地址是否在一個ip段內(nèi)代碼分享
這篇文章主要介紹了Shell腳本實現(xiàn)判斷IP地址是否在一個ip段內(nèi)代碼分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-06-06scp 將數(shù)據(jù)從一臺linux服務(wù)器復(fù)制到另一臺linux服務(wù)器
這篇文章主要介紹了scp 將數(shù)據(jù)從一臺linux服務(wù)器復(fù)制到另一臺linux服務(wù)器,需要的朋友可以參考下2017-09-09Shell中實現(xiàn)“多線程”執(zhí)行腳本文件完美解決方案
這篇文章主要介紹了Shell中實現(xiàn)“多線程”執(zhí)行腳本文件完美解決方案,本文是針對一次調(diào)用執(zhí)行多個腳本文件并分批執(zhí)行的一個解決方法的測試和總結(jié),需要的朋友可以參考下2014-12-12Shell執(zhí)行/調(diào)用Java/Jar程序例子的實例詳解
這篇文章主要介紹了Shell執(zhí)行/調(diào)用Java/Jar程序例子的實例詳解的相關(guān)資料,這里提供實例幫助大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-08-08shell腳本學(xué)習(xí)指南[二](Arnold Robbins & Nelson H.F. Beebe著)
這篇文章主要介紹了shell腳本學(xué)習(xí)指南[二](Arnold Robbins & Nelson H.F. Beebe著),需要的朋友可以參考下2014-02-02詳解Linux下的sudo及其配置文件/etc/sudoers的詳細配置
這篇文章主要介紹了詳解Linux下的sudo及其配置文件/etc/sudoers的詳細配置的相關(guān)資料,需要的朋友可以參考下2017-05-05linux網(wǎng)絡(luò)相關(guān)命令匯總(6)
這篇文章主要為大家匯總了linux網(wǎng)絡(luò)相關(guān)命令,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12