Shell函數參數詳解

一、Shell函數參數傳遞

在Shell編程中,函數參數可以通過以下兩種方式進行傳遞:

  1. 位置參數傳遞
    1. 通過函數名和位置參數的方式進行傳遞。
    2. 位置參數可以是任意個數,並且通過”$n”來獲取參數,n表示參數的位置。
    function fun1() {
        echo "Hello $1"
    }
    fun1 "World"
    #輸出 "Hello World"
    
  2. 關鍵字參數傳遞
    1. 通過函數名和關鍵字參數的方式進行傳遞。
    2. 可以通過”$1″,”$2″等變量來獲取參數。
    function fun2() {
        echo "Hello $1, nice to meet you $2!"
    }
    fun2 -n "World"
    #輸出 "Hello -n, nice to meet you World!"
    

二、Shell函數參數有空格

當參數中含有空格時,可以使用雙引號或單引號來包含參數。

function fun3() {
    echo "Hello $1, nice to meet you $2!"
}
fun3 "Bob Green" "Tom Lee"
#輸出 "Hello Bob Green, nice to meet you Tom Lee!"

三、Shell函數參數調用

在函數中可以通過$#,$*或$@來獲取所有參數。

  1. $# 獲取參數的個數。
  2. $* 獲取所有參數,以一個字符串的形式返回。
  3. $@ 獲取所有參數,以一個列表的形式返回。
function fun4() {
    echo "參數個數為 $#"
    echo "\$* 輸出為 $*"
    echo "\$@ 輸出為 $@"
}
fun4 "A" "B" "C"
#輸出 "參數個數為 3"
#輸出 "\$* 輸出為 A B C"
#輸出 "\$@ 輸出為 A B C"

四、Shell函數參數指針傳遞

在Shell函數中,參數是按值傳遞的。如果需要指針傳遞,則需要使用全局變量。

global_var="init value"
function fun5() {
    echo "傳入函數前,全局變量為 $global_var"
    global_var="changed value"
}
fun5
echo "傳入函數後,全局變量為 $global_var"
#輸出 "傳入函數前,全局變量為 init value"
#輸出 "傳入函數後,全局變量為 changed value"

五、Shell參數

Shell中的參數包括:位置參數、選項參數和命令行參數。

  1. 位置參數:即函數調用時傳遞的參數。
  2. 選項參數:一般以”-“或”–“開頭的參數。
  3. 命令行參數:指定命令運行的一些參數,可以是位置參數和選項參數。

六、Shell判斷命令行參數

使用getopt命令和while循環來判斷命令行參數。

while getopts "a:bc" opt; do
  case $opt in
    a)
      echo "-a 參數的值為 $OPTARG"
      ;;
    b)
      echo "-b 參數被設置"
      ;;
    c)
      echo "-c 參數被設置"
      ;;
    \?)
      echo "無效參數: -$OPTARG" >&2
      exit 1
      ;;
    :)
      echo "選項 -$OPTARG 需要參數。" >&2
      exit 1
      ;;
  esac
done

七、Shell位置參數

在Shell中,$0 代表腳本名稱,$1 $2 $3 …代表位置參數。

八、Shell所有參數

$* 和 $@ 都可以獲取所有位置參數。

echo "\$* 輸出為 $*"
echo "\$@ 輸出為 $@"

九、Shell命令中什麼是參數

在Shell命令中,參數是指命令執行時所需的選項和參數。

ls -l /home/username
#其中 -l 是選項參數,/home/username 是位置參數。

原創文章,作者:YYDTR,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/331582.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
YYDTR的頭像YYDTR
上一篇 2025-01-20 14:10
下一篇 2025-01-20 14:10

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Spring Boot中發GET請求參數的處理

    本文將詳細介紹如何在Spring Boot中處理GET請求參數,並給出完整的代碼示例。 一、Spring Boot的GET請求參數基礎 在Spring Boot中,處理GET請求參…

    編程 2025-04-29

發表回復

登錄後才能評論