學習筆記:shell指令碼中的[$*],[$@] 和 [$#] [$?] [$0] [$1] [$] [$!]... 分別代表什麼

來源:互聯網
上載者:User
舉例說:指令碼名稱叫test.sh 入參三個: 1 2 3 如下
 ./test.sh 1 2 3  
運行test.sh 1 2 3後
$*為"1 2 3"(一起被引號包住)$@為"1" "2" "3"(分別被包住)$#為3(參數數量)
 
 
案例2:
 
#!/bin/bash my_fun() {     echo "$#" } echo 'the number of parameter in "$@" is '$(my_fun "$@")    echo 'the number of parameter in "$*" is '$(my_fun "$*")
 
執行:./my.sh p1 "p2 p3" p4後返回:  
the number of parameter in "$@" is 3      //"$@" = "p1" "p2 p3" "p4"the number of parameter in "$*" is 1     //"$*" = "p1 p2 p3 p4"
 
 
 $n

$1 表示第一個參數,$2 表示第二個參數 …

$#
命令列參數的個數

$0
當前程式的名稱

$?
前一個命令或函數的返回碼

$*
以”參數1 參數2 … ” 形式儲存所有參數

$@
以”參數1″ “參數2″ … 形式儲存所有參數

$
本程式的(進程ID號)PID

$!
上一個命令的PID
相關文章

聯繫我們

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