shell程式設計之傳遞引數

2021-10-19 10:48:10 字數 1577 閱讀 6347

我們可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為:$n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推……

例項

以下例項我們向指令碼傳遞三個引數,並分別輸出,其中$0為執行的檔名(包含檔案的路徑)

#!/bin/bash

echo 「shell 傳遞引數例項!」;

echo 「執行的檔名:$0」;

echo 「第乙個引數為:$1」;

echo 「第二個引數為:$2」;

echo 「第三個引數為:$3」;

為指令碼設定可執行許可權,並執行指令碼,輸出結果如下所示:

chmod +x test.sh

./test.sh 1 2 3

shell 傳遞引數例項!

執行的檔名:./test.sh

第乙個引數為:1

第二個引數為:2

第三個引數為:3

另外,還有幾個特殊字元用來處理引數:

引數說明

$#傳遞到指令碼的引數個數

$*獲取當前指令碼所有傳參的引數,當加上引號後表示將所有引數當成乙個引數

$$獲取當前執行shell指令碼的程序號

$!獲取上乙個在後台工作的程序的程序號

$@獲取當前指令碼所有傳參的引數

$?獲取執行上乙個的指令的狀態返回值(0為成功,非0為失敗)

$_獲取在此之前執行的命令或指令碼的最後乙個引數

#!/bin/bash

echo 「shell 傳遞引數例項!」;

echo 「第乙個引數為:$1」;

echo 「引數個數為:$#」;

echo 「傳遞的引數作為乙個字串顯示:$*」;

執行指令碼,輸出結果如下所示:

chmod +x test.sh

./test.sh 1 2 3

shell 傳遞引數例項!

第乙個引數為:1

引數個數為:3

傳遞的引數作為乙個字串顯示:1 2 3

$* 與$@區別:

相同點:都是引用所有的引數

不同點:只有在雙引號中體現出來。假設在指令碼執行時寫了三個引數1 2 3,則"*「等價於"1,2,3」(傳遞了乙個引數),而"@「等價於"1」 「2」 「3」(傳遞了三個引數)。

echo 「-- $* 演示 —」

for i in 「$*」; do

echo $i

done

echo 「-- $@ 演示 —」

for i in 「$@」; do

echo $i

done

執行指令碼,結果如下:

chmod +x test.sh

./test.sh 1 2 3

– $* 演示 —

1 2 3

– $@ 演示 —12

3

Shell指令碼程式設計之Shell傳遞引數

1.我們可在執行指令碼的時候向指令碼傳遞引數,指令碼內獲取引數的格式為 n,n代表乙個數字,1為執行指令碼的第乙個引數,2為執行指令碼的第二個引數,以此類推 授權後執行,結果如下 2.處理引數的方法 傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數 指令碼執行的當前程序id號 後台執行...

shell引數傳遞

1.位置變數引數即可傳入到指令碼的引數,最多可以訪問 9個,比如 sh a b c d 其中 0 是指令碼名字 1 是第乙個引數 a以此類推 2.特殊參量 傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數。與位置變數不同,可以超過9個 指令碼執行的當前id 後台執行的最後乙個程序的程序...

Shell 傳遞引數

在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n代表一 個數字,1為執行 指令碼的第 乙個引數 2為執 行指令碼的 第二個參 數,以此 類推 例項以下 例項我們 向指令碼傳 遞三個參 數,並分 別輸出,其中0 為執行的檔名 bin bash echo shell 傳遞...