(031) Linux之shell位置參數

來源:互聯網
上載者:User

標籤:

十年營運系列之基礎篇 - Linux

曾林 

聯絡:[email protected]

網站:www.jplatformx.com

著作權:文章未經同意請勿轉載

一、引言

  之前我們一直沒有涉及程式接收和處理命令列選項以及參數的能力。本章節將講述允許程式訪問命令列內容的shell功能。

 

二、訪問命令列

  shell提供了一組名為位置參數的變數,用於儲存命令列中的關鍵字,這些變數分別命令為0~9。可以通過以下方法展示這些變數。

 1 #!/bin/bash 2  3 # posit-param: script to view command line parameters 4  5 echo " 6 \$0 = $0 7 \$1 = $1 8 \$2 = $2 9 \$3 = $310 \$4 = $411 \$5 = $512 \$6 = $613 \$7 = $714 \$8 = $815 \$9 = $916 "

  這個簡單的指令碼展示了從變數$0到$9的值。在沒有任何命令列參數的情形下執行此指令碼結果如下所示:

  即便沒有提供任何實參,變數$0總是會儲存有命令列顯示的第一項資料,也就是所執行程式所在的路徑名。現在讓我們看看,看一下提供實參情形下的程式執行結果。

  注意,使用參數擴充技術,使用者實際可以擷取多於9個的參數。為標明一個大於9的數字,將數字用大括弧括起來,例如${10}, ${11}, ${888}等。

 

三、確定實參的數目

  shell還提供了變數$#以給出命令列參數的數目。如下代碼所示:

#!/bin/bash# posit-param: script to view command line parametersecho "Number of arguments: $#"echo "\$0 = $0\$1 = $1\$2 = $2\$3 = $3\$4 = $4\$5 = $5\$6 = $6\$7 = $7\$8 = $8\$9 = $9"

  以上程式運行結果如下所示:

 

四、shift——處理大量的實參

  但是如果給程式提供大量的實參會發生什麼呢?如下所示:

  在本例中,萬用字元“*”擴充為26個實參。怎麼樣才可以處理這麼多參數呢?shell提供了一種略顯笨拙的處理方法。每次執行shift命令後,所有參數的值均“下移一位”。實際上,通過shift命令我們就可以只處理一個參數($0之外的一個參數,$0值恒定)而完成全部程式任務。如下程式:

#!/bin/bash# shift.sh: script to display all argumentscount=1while [[ $# > 0 ]]; do        echo "Argument $count = $1"        count=$((count + 1))        shiftdone

  每當執行一次shift命令時,變數$2的值就賦值給$1,而$3的值則賦給變數$2,依次類推。變數$#的值同時減去1。故以上代碼的執行結果如所示:

 

(031) Linux之shell位置參數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.