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...