首頁 > php教程 > PHP开发 > Shell裡面括號的用法

Shell裡面括號的用法

高洛峰
發布: 2016-11-23 17:41:11
原創
1389 人瀏覽過

中括號

中括號分為單中括號[],和雙中括號[[]],中括號一般用於表達式判斷中,小括號也可以用於表達式,這個後面提到。

單中括號[]

A=5
B=3
[ $A -eq $B ]    判断A是否等于B
[ ${A} -eq ${B} ]  作用同上
[ "${A}" -eq "${B}" ]  作用同上
登入後複製

    

A=ABC
[ $A == "ABC" ]   或写成  [ ${A} == "ABC" ]   或写成  [ "${A}" == "ABC" ]
[ $A \> "ABC" ]
登入後複製

    

[ -d ./aaa.sh -a -e ./bbb ]  测试aaa.sh是否为目录并且bbb是否存在,如果都符合则返回真
[ -d ./aaa.sh -o -e ./bbb ]  测试aaa.sh是否为目录并且bbb是否存在,满足一个条件则返回真
登入後複製

  

括號

變數與運算子之間也要有空格


變數可以直接用$來引用,也可以使用${}以及"${}"來引用,雖然可以直接使用${},但是建議還是用"${} ",或直接用$,來引用變數

字串要用雙引號引起來

字串比較一般使用==來做字串是否相同測試,使用<或>進行大小比較,在單中括號中將字元進行大於和小於的比較要用轉移>和<。比較原理就是對比ASCII來比較。

另外在單中括號中還可以使用-a和-o這樣的邏輯運算子

雙中括號[[     

A=5
B=3
[[ $A -eq $B ]]    判断A是否等于B
[[ ${A} -eq ${B} ]]  作用同上
[[ "${A}" -eq "${B}" ]]  作用同上
登入後複製


雙中括號的使用和單中括號的使用規則類似

雙中括號中間字符串的大於小於比較不需要轉義,且字串可以不用雙引號引用

雙中號括號裡面可以使用&&、||做邏輯運算子

雙中括號裡面還可以做模糊匹配,使用=~表達式2可以是正規表示式

A=ABC
[[ $A == "ABC" ]]   或写成  [[ ${A} == "ABC" ]]   或写成  [[ "${A}" == "ABC" ]] 或写成 [[ $A == ABC ]]
[[ $A > "ABC" ]]
登入後複製

    

[[ -d ./aaa.sh && -e ./bbb ]]  测试aaa.sh是否为目录并且bbb是否存在,如果都符合则返回真
[[ -d ./aaa.sh || -e ./bbb ]]  测试aaa.sh是否为目录并且bbb是否存在,满足一个条件则返回真
登入後複製

   

括號

單小括號單獨使用是表示指令組,會透過子shell的方式依序執行括號中的指令

A=ABC
[[ $A =~ "A" ]]   做模式匹配,这个表达式为真
或写成  [[ ${A} =~ "A" ]]  或写成  [[ "$[A]" =~ "A" ]]
[[ $A = A* ]] 表达式为真  [[ $A = B* ]] 表达式为假
登入後複製

   

最常見的用法這是指令替換中使用,指令也可以使用反引號``

[ 表达式1 -a 表达式2 ] 等效于 [[ 表达式1 && 表达式2 ]] 等效于 [ 表达式1 ] && [ 表达式2 ] 等效于 [[ 表达式1 ]] && [[ 表达式2 ]]
登入後複製

   


雙小括號

常用在算術運算上以及在for形式

1到10循環執行

[ 表达式1 -o 表达式2 ] 等效于 [[ 表达式1 || 表达式2 ]] 等效于 [ 表达式1 ] || [ 表达式2 ] 等效于 [[ 表达式1 ]] || [[ 表达式2 ]]
登入後複製

   

While語句的形式

1到10循環

(ls ./;echo "hello";mkdir -p /tmp/ccc)
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板