shell 中括號的用法

2021-08-30 19:10:58 字數 1077 閱讀 4132

[size=x-small]test , ,

因為 shell 和我們通常程式語言不同,更多的情況是和它互動,總是呼叫別人。 所以有些本屬於程式語言本身的概念在 shell 中會難以理解。"基本功" 不好, 更容易 "犯睏" 了,我就是乙個 :-) 。

以 bash 為例 (其他相容 shell 差不多):

1. test 和 [ 是 bash 的內部命令,gnu/linux 系統的 coreutils 軟體包通 常也帶 /usr/bin/test 和 /usr/bin/[ 命令。如果我們不用絕對路徑指 明,通常我們用的都是 bash 自帶的命令。

2. [[ 是 bash 程式語言的關鍵字!

$ ls -l /usr/bin/[ /usr/bin/test

-rwxr-xr-x 1 root root 37400 9月 18 15:25 /usr/bin/[

-rwxr-xr-x 1 root root 33920 9月 18 15:25 /usr/bin/test

$ type [ [[ test

[ is a shell builtin

[[ is a shell keyword

test is a shell builtin

絕大多數情況下,這個三個功能通用。但是命令和關鍵字總是有區別的。命令和 關鍵字的差別有多大呢?

如果是命令,它就和引數組合為一體被 shell 解釋,那樣比如 ">" "<" 就被 shell 解釋為重定向符號了。關鍵字卻不這樣。

在 [[ 中使用 && 和 ||

[ 中使用 -a 和 -o 表示邏輯與和邏輯或。

[[ 中可以使用萬用字元

arch=i486

[[ $arch = i*86 ]] && echo "arch is x86!"

[[ 中匹配字串或萬用字元,不需要引號

[[ $arch_com = i386 || $arch = i*86 ]] &&

cat >> $tfs_repo 《等類似c語言的語法;是bash內嵌的命令,也是用於測試的。通用性更好些。

(()),類似let,用於計算表示式。()可以把多個命令括起來,在乙個子shell執行[/size]

shell中括號的用法

test 因為 shell 和我們通常程式語言不同,更多的情況是和它互動,總是呼叫別人。所以有些本屬於程式語言本身的概念在 shell 中會難以理解。基本功 不好,更容易 犯睏 了,我就是乙個 以 bash 為例 其他相容 shell 差不多 1.test 和 是 bash 的內部命令,gnu li...

shell 中括號的用法

test 因為 shell 和我們通常程式語言不同,更多的情況是和它互動,總是呼叫別人。所以有些本屬於程式語言本身的概念在 shell 中會難以理解。基本功 不好,更容易 犯睏 了,我就是乙個 以 bash 為例 其他相容 shell 差不多 1.test 和 是 bash 的內部命令,gnu li...

Shell 中的中括號用法

shell中的中括號 也叫方括號 的用法 1 單中括號 bash 的內部命令,和test是等同的。如果我們不用絕對路徑指明,通常我們用的都是bash自帶的命令。if test結構中的左中括號是呼叫test的命令標識,右中括號是關閉條件判斷的。這個命令把它的引數作為比較表示式或者作為檔案測試,並且根據...