shell 和 一些區別

2021-09-24 22:08:28 字數 805 閱讀 7852

=       等於,如:if [ "$a" = "$b" ]

==       等於,如:if [ "$a" == "$b" ],與=等價

注意:==的功能在和中的行為是不同的,如下:

1、[[ $a == z* ]]    # 如果$a以"z"開頭(模式匹配)那麼將為true

示例:~]#  if [[ $a == z* ]]; then echo 'true'; fi

~]# 

~]# 

~]# a=zzz

~]# 

~]#  if [[ $a == z* ]]; then echo 'true'; fi

true

2、[[ $a == "z*" ]] # 如果$a等於z*(字元匹配),那麼結果為true

示例:~]# a=z*

~]# 

~]# if [[ $a == "z*" ]]; then echo 'true'; fi

true

3、[ $a == z* ]      # file globbing 和word splitting將會發生

4、[ "$a" == "z*" ] # 如果$a等於z*(字元匹配),那麼結果為true

示例:~]# a=z*

~]# 

~]# if [ $a == "z*" ]; then echo 'true'; fi

true

一點解釋,關於file globbing是一種關於檔案的速記法,比如"*.c"就是,再如~也是.

但是file globbing並不是嚴格的正規表示式,雖然絕大多數情況下結構比較像.

一些shell符號

傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數,與位置變數不同,此選項引數可超過9個 指令碼執行的當前程序id號 後台執行的最後乙個程序的程序id號 與 相同,但是使用時加引號,並在引號中返回每個引數 顯示shell使用的當前選項,與set命令功能相同 顯示最後命令的退出狀態。0表示...

一些shell技巧

1.批量刪除某些指定檔案 我們都知道用find,很快就可以給出 find name your pattern exec rm f 恩,不過還有更快更簡潔的方法,用find自帶的delete find name your pattern delete 2.列出當前目錄下的所有目錄 不遞迴 你能想到幾種...

shell一些筆記

1 getopts可以編寫指令碼,使控制多個命令列引數更加容易 如 檔案get.sh bin sh name false age false odd false false while getopts nao s arg do case arg in n echo name is true a ec...