Linux Shell 如何獲取參數


$# 是傳給腳本的參數個數

$ 0  是腳本本身的名字
$ 1  是傳遞給該shell腳本的第一個參數
$ 2  是傳遞給該shell腳本的第二個參數
$@ 是傳給腳本的所有參數的列表
$* 是以一個單字符串顯示所有向腳本傳遞的參數,與位置變量不同,參數可超過 9
$$ 是腳本運行的當前進程ID號
$? 是顯示最后命令的退出狀態, 0 表示沒有錯誤,其他表示有錯誤
 

區別:$@, $*

相同點:都是引用所有參數
不同點:$* 和 $@ 都表示傳遞給函數或腳本的所有參數,不被雙引號(" ")包含時,都以"$1" "$2" … "$n" 的形式輸出所有參數。但是當它們被雙引號(" ")包含時,"$*" 會將所有的參數作為一個整體,以"$1 $2 … $n"的形式輸出所有參數;"$@" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出所有參數。

$*和$@詳細區別請看此處

復制代碼
#!/bin/bash

echo "-----------------"
for key in "$@"
do
    echo '$@' $key
done
echo "-----------------------------"
for key2 in $*
do
    echo '$*' $key2
done

1、帶引號執行及結果: 
[root@localhost ~]# bash file.sh linux "python c"
-----------------
$@ linux
$@ python c
-----------------------------
$* linux
$* python
$* c
2、不帶引號執行及結果: 
[root@localhost ~]# bash file.sh linux python c
-----------------
$@ linux
$@ python
$@ c
-----------------------------
$* linux
$* python
$* c
復制代碼

 

 


免責聲明!

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



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