位置變量$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
下一篇 2016-08-18

相關推薦

  • 9月9日,系統啟動文件恢復與內核編譯

    1、破解root口令,并為grub設置保護功能 進入grub界面,輸入a鍵,在輸入1,進入單用戶界面,進入系統后修改密碼。 2、破壞本機grub stage1,而后在救援模式下修復之 3、刪除vmlinuz和initramfs文件,無法啟動,恢復之 (1)安裝kernel內核 (2)光盤尋找內核,在復制到/boot目錄下,在修改成對應的,系統會重啟兩次 (3…

    Linux干貨 2016-09-13
  • shell編程之條件判斷和find查詢

    使用read 來把輸入值分配給一個或多個shell 變量: -p 指定要顯示的提示 -t TIMEOUT read 從標準輸入中讀取值,給每個單詞分配一個變量 所有剩余單詞都被分配給最后一個變量 read -p “Enter a filename: “ FILE   條件選擇if語句  多分支 if  CONDITION1 ; …

    Linux干貨 2016-08-18
  • ansible批量部署主從DNS

    什么是DNS服務DNS的解析流程分析遞歸查詢迭代查詢DNS相關的術語說明生產環境中的應用Bind9常見配置說明使用ansible自動部署主從DNS 什么是DNS服務 DNS(Domain Name Service)是Internet上用于名稱解析的服務,簡單來說,就是將域名轉換為IP地址的服務(正向解析),也可以用于將IP地址解析為對應的…

    Linux干貨 2016-06-29
  • 馬哥教育網絡班21期-第一次課程作業

    計算機組成部分及其作用 1.總線 電子管道,攜帶信息字節并在各個部件間傳輸。分為地址總線,數據總線,控制總線。 CPU最大可尋址范圍:2^N*M,  N為地址總線數量,M為數據總線數量。 2.I/O設備 I/O設備及輸入輸出設備,最常見的輸入設備就是我們非常熟悉的鍵盤,鼠標,我們通過我們通過這些設備向計算機傳達指令,讓計算機完成我們想要它完成的工作…

    Linux干貨 2016-06-29
  • llinux常用命令及bash基本特性

    一、常用的文件和目錄管理命令 1. pwd命令:用來顯示當前的工作目錄 語法格式:直接輸入pwd回車顯示當前的工作目錄 示例:用pwd命令顯示當前的工作目錄 [root@suyiwen ~]# pwd /root 2. mkdir命令:用來創建目錄文件 語法格式:mkdir [OPTION]… DIRECTORY…常用option: -m,用來指定目錄的權限…

    Linux干貨 2018-03-11
  • 一些不起眼但非常有用的 Vim 命令

    原文出處: xmodulo   譯文出處:linux.cn – wangjiezhe   如果我的關于這個話題的最新帖子沒有提醒到你的話,那我明確地說,我是一個 Vim 的粉絲。所以在你們中的某些人向我扔石頭之前,我先向你們展示一系列“鮮為人知的 Vim 命令”。我的意思是,一些你可能以…

    Linux干貨 2015-03-09
欧美性久久久久