Shell系列 Shell 傳遞引數

2021-08-03 21:55:01 字數 1821 閱讀 6032

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

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

#!/bin/bash

# author:peipei3514

echo

"shell 傳遞引數例項!"

;echo

"執行的檔名:$0"

;echo

"第乙個引數為:$1"

;echo

"第二個引數為:$2"

;echo

"第三個引數為:$3"

;

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

$ chmod 

+x test

.sh

$ ./

test

.sh 12

3shell

傳遞引數例項!

執行的檔名:./

test.sh

第乙個引數為:

1第二個引數為:

2第三個引數為:

3

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

引數處理

說明$#

傳遞到指令碼的引數個數

$*以乙個單字串顯示所有向指令碼傳遞的引數。

如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。

$$指令碼執行的當前程序id號

$!後台執行的最後乙個程序的id號

$@與$*相同,但是使用時加引號,並在引號中返回每個引數。

如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有引數。

$-顯示shell使用的當前選項,與set命令功能相同。

$?顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。

#!/bin/bash

# author:peipei3514

echo

"shell 傳遞引數例項!"

;echo

"第乙個引數為:$1"

;echo

"引數個數為:$#"

;echo

"傳遞的引數作為乙個字串顯示:$*"

;

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

$ chmod 

+x test

.sh

$ ./

test

.sh 12

3shell

傳遞引數例項!

第乙個引數為:

1引數個數為:

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

3

$* 與 $@ 區別:

#!/bin/bash

# author:peipei3514

echo

"-- \$* 演示 ---"

fori

in"$*";do

echo $i

done

echo

"-- \$@ 演示 ---"

fori

in"$@";do

echo $i

done

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

$ chmod 

+x test

.sh

$ ./

test

.sh 12

3--$*

演示---12

3--$@ 演示

---1

23

Shell 指令碼學習筆記五 Shell傳遞引數

我們可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 bin bash echo shell 傳遞引數例項!echo 執行的檔名 0 echo 第乙個引數為 1 echo 第二個引...

shell命令,shell迴圈,shell引數

touch hello.sh 建立乙個檔案 vi hello.sh 編輯文字 bin bash 指定bash解析器,centos預設的是bash解析器 echo helloworld echo helloworld 這兩句話效果相同,不過為了符合規範用第二種 執行指令碼,首先賦予指令碼最大許可權 c...

Shell教程 Shell 傳遞引數

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