Shell學習計畫 Shell 傳遞引數

2021-10-20 10:48:12 字數 2190 閱讀 5419

我們在執行 shell 指令碼時可以向指令碼傳遞引數。shell 指令碼內可以獲取我們傳遞的引數

向指令碼傳遞的引數以空格分開空格數量沒限制但至少乙個。 在 shell 指令碼內獲取引數的格式為:$n

n代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推...

注意:$0為執行的檔名

範例:指令碼內獲取傳遞的引數

以下範例我們向指令碼傳遞三個引數,然後分別輸出這些引數

#!/bin/bash

# author:小白

echo "shell 傳遞引數範例!";

echo "執行的檔名:$0";

echo "第乙個引數為:$1";

echo "第二個引數為:$2";

echo "第三個引數為:$3";

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

$ chmod +x demo.sh 

$ sh ./demo.sh a b c

shell 傳遞引數範例!

執行的檔名:demo.sh

第乙個引數為:a

第二個引數為:b

第三個引數為:c

特殊字元

描述$#          

傳遞到指令碼的引數個數

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

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

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

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

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

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

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

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

範例: 獲取傳遞引數的個數

#!/bin/bash

# filename: demo.sh

# author:xiaobai

echo "shell 傳遞引數例項!";

echo "第乙個引數為:$1";

echo "引數個數為:$#";

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

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

$ sh demo.sh  a b c

shell 傳遞引數例項!

第乙個引數為:a

引數個數為:3

傳遞的引數作為乙個字串顯示:a b c

範例: shell 指令碼 $* 與 $@ 的區別

#!/bin/bash

# filename: demo.sh

# author:小白

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

for i in "$*"; do

echo $i

done

echo ""

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

for i in "$@"; do

echo $i

done

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

$ sh demo.sh a b c

-- $* 演示 ---

a b c

-- $@ 演示 ---ab

c

shell傳遞函式就學習到這裡,明天見!

Shell學習計畫 Shell 陣列

今天來說一說陣列!陣列中可以存放很多值 bash shell中只支援一維陣列 不支援多維陣列 初始化時不需要定義陣列大小 shell 陣列語法格式如下 array name value1 valuen shell 陣列元素的下標由0開始,這與大部分程式語言都類似。shell 陣列用括號來表示,元素用...

Shell學習計畫 Shell 概念篇

shell是運維開發最重要的一項語言!幾乎所有的運維崗位都要求會shell語言,會用shell執行一些簡單的任務,做一些自動化運維相關的工作。shell既是一種命令語言,又是一種程式語言,是使用者使用linux的橋梁。shell是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業...

Shell 向shell指令碼傳參

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