歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux變量學習心得

Linux變量學習心得

日期:2017/2/28 14:00:30   编辑:Linux教程

前一段時間學習了一下Linux的變量,現在總結有3點需要特別注意:

  1. Linux變量和C/C++變量的區別
  2. Linux變量的引用
  3. Linux變量特有的命令替換

  • 先說第一點,Linux變量更像是宏定義,只是可以變換指代內容。也就是說,在C/C++中,變量是只能賦值成不同類型的數據,例如int, char, ptr。但是在Linux中,變量是可以賦值成任意形式的內容,比如字符串,針對這點來說,它更像是C/C++中的宏定義。
  • 由於變量包含的內容不同,Linux和C/C++的變量引用自然不同。Linux中變量引用一般有兩種形式:

    1. $var:這種寫法很常見而且簡單,但是為了准確的表達和降低閱讀難度,建議采用下一種方法;
    2. ${var}: 這種寫法更能體現出具體的變量,不會帶來意向不到的小麻煩。

    注意:在給變量賦值的時候有兩種寫法:

    1. 單引號‘’:單引號裡面的內容原封不動的賦值給變量,即使包含其他的變量;
    2. 雙引號“”:雙引號裡面的變量引用會換成變量的實際內容。
  • 關於變量的命令替換,格式是$(commend),本質是把commend執行的結果當成內容賦值給別的變量或是另作他用。

在這裡說一下關於命令替換的一些深入解析(個人見解):

    1. 命令替換和管道的關系:
      1. 對於管道來說,它是兩個命令(進程)間的關系,而且必須符合3個條件:
        • 前一個命令必須正確執行;
        • 前一個命令可以產生standard out的信息;
        • 後一個命令可以接收信息參數。
          然後才能完成前一個命令的結果傳遞給下一個命令的行為,而且只能是兩個命令之間的行為。
      2. 對於命令替換來說,它沒有這些條件的約束,只要命令執行,不管結果如何,都會將運行的結果取出賦值給別的變量或是另作他用。
    2. 命令替換和alias的關系:
      1. 對於alias來說,它可以作為一個命令的別名,其實就是另外一個名字而已,類似於typedef,它代表的是命令本身而不是它執行的結果;
      2. 對於命令替換來說,它得到的是命令執行的結果而不是命令本身。
Copyright © Linux教程網 All Rights Reserved