shell 中括號的用法

2021-08-30 12:20:02 字數 1074 閱讀 7756

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 <[tfs-i386]

name=gtes11.3 prelim1

baseurl=$i386/

enabled=1

eof

shell中括號的用法

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

shell 中括號的用法

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

Shell 中的中括號用法

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