SHELL指令碼函式

2021-08-14 09:06:11 字數 1112 閱讀 3293

shll作為指令碼語言,也有自己的函式。但是他有許多與其他語言不同的特點

在這裡,定義了乙個函式,有2個引數,第乙個:陣列,第二個:單個值。

這個函式的作用是判斷第二個引數的值是否在第乙個引數(陣列)裡面。

#!/bin/sh

# 定義函式

# _fun

function contain

() do

ta_array=`echo

$ | cut -d

','-f

1` tb_value=`echo

$ | cut -d

','-f

1` if [ "$" = "$" ];then

g_contain_rs="1"

else

g_contain_rs="0"

fidone

}

arr_rs_b=("aaa","bbb","ccc")

sysjob_name="aaa"

contain $

$

需要注意的是:函式必須在被呼叫之前就已經被定義好。

目前在shell指令碼中,獲取函式的返回值有2種方式

第一種使用 $? 來獲取上乙個函式的返回值

# 函式的返回值一般使用1或者0

function

test_fun

() test_fun

echo

"$?"

這種方法簡潔易用,但是有乙個致命的問題:在迴圈呼叫方法的時候,$?只能獲取到第一次被呼叫的函式的返回值。

如何避免這種問題?可以使用全域性變數。如同在上文【定義】中,使用全域性變數g_contain_rs來獲取最新的函式呼叫返回值。

g_contain_rs=""

function test_fun

() echo

"$g_contain_rs"

shell指令碼 函式

函式是乙個指令碼 塊,由使用者對其自定義,可以在指令碼的任意位置建立,按照格式將命令寫入到函式中,系統不會直接執行函式中的命令。如果想要這個函式,只要呼叫這個函式的名稱 只需要輸入名稱 就可以了,而且可以在指令碼的任意位置呼叫,使用函式的好處在於模組化以及 可讀性強。function 函式名稱 可以...

shell指令碼 函式

函式function是由若干條shell命令組成的語句塊,實現 重用和模組化程式設計。它與shell程式形式上是相似的,不同的是它不是乙個單獨的程序,不能獨立執行,而是shell 程式的一部分。函式和shell程式比較相似,區別在於 shell 程式在子shell中執行 而shell函式在當前she...

Shell指令碼語法 函式

bin sh foo echo start fooecho end 注意函式體的左花括號寫在同一行,命令末尾必須有 號。在定義foo 函式時並不執行函式體中的命令,就像定義變數一樣,只是給foo這個名字乙個定義,到後面呼叫foo函式的時候 注意shell中的函式呼叫不寫括號 才執行函式體中的命令。s...