shell之 $()、``、${ }、$(( ))與(())

來源:互聯網
上載者:User

標籤:${ }   ``   $()   shell   


  1. $()、``用來作命令替換

  2. ${ }用來作變數替換(以下內容來自shell十三問)

      (1).    變數的界定

        $ A=B        $ echo $AB

        該命令執行時,將AB整體看作一個變數,而不是變數$A與字母B的串連。

        $ A=B        $ echo ${A}B

        該命令執行後將輸出:BB


       (2).    特殊功能,對於字串的處理有很大的協助。

       首先,定義變數 file=/dir1/dir2/dir3/my.file.txt,下面的命令將取得不同的值。

  •         根據字串中包含的字元進行提取 :# 與 % 

    • ${file#*/}:去掉第一個“/”及其左邊的字串           -> /dir1/dir2/dir3/my.file.txt

    • ${file##*/}:去掉最後一個“/”及其左邊的字串      ->my.file.txt

    • ${file%/*}:去掉最後一個“/”及其右邊的字串        ->/dir1/dir2/dir3

    • ${file%%/*}:去掉第一個"/"及其右邊的字串        ->空值

  •        提取指定位置指定長度字元

    • ${file:0:5}:提取最左邊的5個字元          ->/dir1

    • ${file:5:5}:提取第5個字元右邊連續5個字元 ->/dir2

  •         字串替換

    • ${file/dir/path}:將第一個dir替換為path             ->/path1/dir2/dir3/my.file.txt

    • ${file//dir/path}:將全部dir替換為path              ->/path1/path2/path3/my.file.txt

  •         計算變數值的長度:${#var}

    • ${#file}                                                       ->27  即strlen(file)


          (3).    數組相關


    • A="a b c def":變數的值為一個字串

    • A=(a b c def):將$A定義為數組



    • ${A[@]}或${A[*]}:得到全部數組

    • ${A[0]}:第一個元素

    • ${#A[@]}或${#A[*]}:數組元素的個數

3.    $(()) 用來做運算

    $ a=5;b=7    $ echo $((a+b))    12

4.   (())可以重定義變數值

    a=5; ((a++)) 可將 $a 重定義為6

本文出自 “linux” 部落格,請務必保留此出處http://4983206.blog.51cto.com/4973206/1436474

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.