位置變量$1,$2,$@,$*,$#詳解

位置變量:

位置變量實際是屬于系統預定義變量的一種,不能修改變量名,同時作用也是固定的,也不能新增的變量,只能修改變量的值。

    常用的位置參數變量

   
    $0代表命令本身,$1-$9代表第一到第九個參數,十以上的參數需要用大括號括起來,比如${11}.

    該變量的用法:

       該腳本表示輸出位置0,1,2,3的值,賦予該腳本x權限,并執行.

     blob.png

腳本執行后只輸出了變量0的值,也就是命令本身./test,而變量1,2,3是空的,所以沒有任何輸出。

blob.png

那么如果我們執行這個腳本的時候添加一下參數再看看,如下:

[root@localhost bin]# ./test 1 2 3      

      會輸出什么結果呢?如圖:

blob.png

   而這分別輸出了我們添加的參數值,什么原理呢?
   這種就是位置參數變量的意義,也就是說我們只讓他輸出 變量0,變量1,變量2,變量3的值,而只有變量0代表命令本身而輸出了,而其他三個是空變量沒有輸出,所以我們在執行腳本的時候就在命令后面分別跟上三個參數,然后分別由變量1,變量2,變量3來接收,然后執行過程當中就分別輸入1 2 3也就是位置變量的值,即使,你在第四個位置變量上也寫上參數,但是由于腳本里只能接收3個值,最后輸入的也仍然是前3個的值。
   那么位置變量具體有什么作用呢?比如我們現在要執行一個簡單的加和計算,11+12的值,而這時,我們就可以使用位置變量了,將11和12由位置變量傳遞給我們的腳本做加和。如圖:

 該腳本表示,計算變量1和變量2的參數之和,賦予腳本x權限后,執行看看結果怎樣:   

blob.png

我們可以看到,腳本計算了變量1和變量2的加和并輸入。

blob.png

  在我們寫腳本時,經常需要由腳本將一些參數傳遞給腳本執行并輸入,而位置變量就可以起到傳遞參數的作用。

============================================================================================

$*:表示所有參數,而這些參數全部被看做一個整體的字符串

$@:表示所有參數,和$*不同的是,這些參數被每一個都是獨立的

$#:表示所有參數的個數

接下來我們用實例分別講解這三者的區別:

    腳本內容如圖所示:

blob.png

輸出結果:可以看到$#輸出了變量的總數,而$*和$@則輸出了所有的參數.

blob.png  

$*:所有的位置參數,被視作為一個單詞。

注意:$*必須被""引用。

$@:同樣是引用所有的參數,但和$*的區別是,每個參數都被看作一個獨立的單詞;

注意:$@必須被""所引用。

    

 

 

原創文章,作者:因為有你,如若轉載,請注明出處:http://www.www58058.com/36488

(0)
因為有你因為有你
上一篇 2016-08-18 10:10
下一篇 2016-08-18 10:10

相關推薦

  • 初識Linux

    一,計算機的組成和功能 計算機主要由四個部分組成,內存、緩存、CPU和寄存器。其中緩存及其重要,為CPU和內存之間的緩存,寄存器存放指令,CPU負責執行指令。內存是與CPU進行溝通的橋梁。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。 二,Linux的主流發行版本 Linux的發行版有數百種之多,其中主流的三種為: Debia…

    Linux干貨 2017-12-04
  • 【26期】Linux第一周學習小總結

        知識不在長短,而在于其中的精煉程度,字典每個字沒有一頁的篇幅,卻被大面積推廣,之所以沒有再把學到的全部搬運到博客上來,就是為了給大家一點可看的東西,也許我自己認為的精煉是有點簡短了,那我就再更新一下,再復習一下,學到的whatis 和 man命令。     第一周匆匆而過,學過的知識,過遍腦…

    2017-07-14
  • grep,egrp,fgrep 命令與正則表達式

    一 簡介     grep (global search regular expression(RE) and print out the line,全面搜索正則表達式并把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。 Unix的grep家族包括grep、egrep和fgrep…

    Linux干貨 2016-01-19
  • ansible學習筆記之1

    ansible學習筆記之1 ansible學習筆記之1 ansible 基礎 ad-hoc 基礎概念 ansible學習筆記之1 說說運維工具的類型 > 運維工具按是否需要有代理程序來劃分分為兩類:      agent(需要代理工具):          基于專用的age…

    2016-11-21
  • 文件查找

    文件查找 簡介:在文件系統上查找符合條件的文件,就是文件查找。 文件查找命令:locate, find            非實時查找(數據庫查找):locate        &nbsp…

    Linux干貨 2016-08-18
  • N26-第十五周

    溫故知新1、總結sed和awk的詳細用法;sed stream EDitor 流編輯器,行級sed  [option] …’script’ [input-file]script 地址定界編輯命令常用選項-n 靜默模式 ,不輸出模式空間中的內容至屏幕-e script –expression …

    Linux干貨 2017-08-24
欧美性久久久久