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的命令標識,右中括號是關閉條件判斷的。這個命令把它的引數作為比較表示式或者作為檔案測試,並且根據...