shell腳本中$*,$@,$#的區別


shell腳本中的$*,$@和$#

#!/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
the number of parameter in "$*" is 1

 



$*表示所有這些參數都被雙引號引住。若一個腳本接收兩個參數,$*等於$1$2
$@表示所有這些參數都分別被雙引號引住,若一個腳本接收到兩個參數,$@等價於$1$2
$#表示提供給腳本的參數號


舉例說:
腳本名稱叫test.sh 入參三個: 1 2 3
運行test.sh 1 2 3后
$*為"1 2 3"(一起被引號包住)
$@為"1" "2" "3"(分別被包住)
$#為3(參數數量)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM