日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

全面整理linux下shell中各种括号的作用及用法

發布時間:2023/12/15 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 全面整理linux下shell中各种括号的作用及用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當初自己在學習shell編程的時候,被各種括號的用法搞得頭昏腦漲??恐鸩降氖煜ず头e累,才終于掌握的所有的括號的用法。現在,把自己總結出來的分享給大家。

注:看本篇文檔的前提是你已經有了bash以及shell編程的基礎。

單小括號()

但小括號常見的兩個作用:命令替換以及數組的初始化

命令替換

當碰到$()結構時,shell就把括號的內命令執行,并返回結果

# tmp=$(date)
# echo $tmp
Fri Sep 18 10:22:30 CST 2020

登錄后復制

初始化數組

# 初始化數組
lnmp=(linux nginx mysql php)

登錄后復制

雙小括號(())

記住雙括號有一個特點,就是括號內的要符合c語言的語法,使用變量名時不需要加上$符號的。

雙小括號的用法比較多,它可以用作整數計算(不支持小數)。例如:$((3+2))

# echo $((1+3))
4
# n1=3
# echo $((n1+7))
10

登錄后復制

只要符合c語言語法的運算擴展,都可以寫在括號里

# echo $((3+4>5 ? 1 :0)) 
1
# echo $((3+4>9 ? 1 :0)) 
0

登錄后復制

重新給變量賦值,這個時候不可在括號外加$符

# i=1;((i++));echo $i;
2
# i=1;((i=100));echo $i;
100

登錄后復制

雙括號還經常用在for循環中

for ((i=0;i<5;i++));do echo -n $i;done

登錄后復制

單方括號[]

單方括號最常見用于邏輯判斷中,另外它還可以作為數組的下標,以及在正則中表示一段范圍

shell腳本中用于條件判斷:

if [ 1 > 2 ] then
    ……
fi

登錄后復制

也可以作為數組下標:

# echo ${lnmp[1]}
nginx

登錄后復制

在正則中使用,表示一段范圍

[0-9]  表示數子0-9都行

登錄后復制

雙方括號

和單括號一樣,雙方括號也用在條件判斷中,但它比單方括號更加的通用。下面舉一個例子:

[ a > b ] && [ a > 0 ]或[ a > b -a a > 0 ]
改成雙括號
[[ a > b && a > 0 ]]

登錄后復制

單花括號{}

花括號拓展。(通配(globbing))將對花括號中的文件名做擴展。在大括號中,不允許有空白,除非這個空白被引用或轉義。

比如輸入命令 rm -f {1,2}.txt將刪除1.txt和2.txt文件。

單花括號中..的作用

兩個點在這里表示一段范圍的意思。比如

echo {1..10}  #將打印1,2,3,4,5,6,7,8,9,10

登錄后復制

花括號還常用在shell腳本里,用于代碼塊。

初次之外,單花括號還可以用作變量內容的替換和刪除以及變量內容的測試,給出一個常見的例子。我們常常會判斷一個變量是否存在,如果不存在,則給該變量設置新值。

val=${n1:-test}

登錄后復制

上面代碼表示如果n1這個變量不存在或為空,則將val變量值設置為test,否則val值為n1變量的值

以上就是全面整理linux下shell中各種括號的作用及用法的詳細內容,更多請關注風君子博客其它相關文章!

總結

以上是生活随笔為你收集整理的全面整理linux下shell中各种括号的作用及用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。