我們在執行 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 "傳遞的引數作為乙個字串顯示:$*";
範例: shell 指令碼 $* 與 $@ 的區別$ sh demo.sh a b cshell 傳遞引數例項!
第乙個引數為:a
引數個數為:3
傳遞的引數作為乙個字串顯示:a b c
執行指令碼,輸出結果如下所示:#!/bin/bash# filename: demo.sh
# author:小白
echo "-- \$* 演示 ---"
for i in "$*"; do
echo $i
done
echo ""
echo "-- \$@ 演示 ---"
for i in "$@"; do
echo $i
done
shell傳遞函式就學習到這裡,明天見!$ sh demo.sh a b c-- $* 演示 ---
a b c
-- $@ 演示 ---ab
c
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...