溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用Bash腳本中括號(hào)和反引號(hào)

發(fā)布時(shí)間:2021-10-21 10:43:24 來(lái)源:億速云 閱讀:142 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“如何使用Bash腳本中括號(hào)和反引號(hào)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何使用Bash腳本中括號(hào)和反引號(hào)”吧!

在 Bash 腳本中,我們經(jīng)常需要引用變量或者命令的執(zhí)行結(jié)果來(lái)作為文件的名字或者日志的輸出,在腳本或者 Shell 中我們可以使用反引號(hào) 或者括號(hào) () 來(lái)獲取到變量的內(nèi)容

示例

示例 1
獲取日期的輸出

echo `date`
# output
2021年 01月 05日 星期二 15:21:23 CST
echo $(date)
# output
2021年 01月 05日 星期二 15:21:32 CST

通過(guò)使用反引號(hào)或者括號(hào)我們可以將命令的輸出做為腳本中的內(nèi)容輸入,同樣可以使用命令的參數(shù)來(lái)格式化輸出

示例 2

獲取 年-月-日 格式的日期

echo `date +%F`
# output
2021-01-05
echo $(date +%F)
# output
2021-01-05

討論

在 Bash 中反引號(hào)和括號(hào)代表命令輸入,所以在腳本中我們只能使用反引號(hào)和括號(hào)來(lái)獲取命令的執(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é)果報(bào)錯(cuò)

? ./test

./test:行6: variable: 未找到命令

name

./test:行12: variable: 未找到命令

name

總結(jié)

1).(點(diǎn))與source命令一樣,從文件中讀取并執(zhí)行命令,無(wú)論該文件是否都有可執(zhí)行權(quán)限都能夠正確的執(zhí)行。且是在當(dāng)前shell下執(zhí)行,而不是產(chǎn)生一個(gè)子shell來(lái)執(zhí)行(我們通常使用“./filename.sh”去執(zhí)行一個(gè)文件是在當(dāng)前shell下產(chǎn)生一個(gè)子shell去執(zhí)行的)

2): 該命令什么都不做,但執(zhí)行后會(huì)返回一個(gè)正確的退出代碼,即exit 0,類似于pass

3)() 將多個(gè)命令組合在一起執(zhí)行,相當(dāng)于一個(gè)命令組。

4){}  和()類似,也是將多個(gè)命令組合在一起。它們之間的區(qū)別是,()是在產(chǎn)生的子shell下執(zhí)行,而{}是在當(dāng)前的shell下執(zhí)行。

5)[] 與test命令一樣,用于比較值以及檢查文件類型

6)[[]]可以說(shuō)是[]的“增強(qiáng)版”,它能夠?qū)⒍鄠€(gè)test命令支持的測(cè)試組合起來(lái)

7)(())專門(mén)來(lái)做數(shù)值運(yùn)算,如果表達(dá)式求值為 0,則設(shè)置退出狀態(tài)為 1;如果求值為非 0 值,則設(shè)置為 0。

到此,相信大家對(duì)“如何使用Bash腳本中括號(hào)和反引號(hào)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI