函式兩種命名格式 如下,第一種是帶() 第二種是不帶()的
第一種小括號的
函式名()
第一種不帶小括號的
function 函式名
函式的傳遞引數
int example_1(int arg1,int arg2)
舉例
int num1=10;
int num2=20;
函式呼叫形式一:int num3=example_1(num1,num2);
函式呼叫形式二:int num4;
num4=example_1(num1,num2);
shell中傳參
function name
#呼叫方式
name lily allen
編寫 calcut.sh 內容如下:
#!/bin/bash
function calcu
calcu $1 $2 $3
執行 ./calcut.sh 11 + 22 結果如下
~:$ ./calcut.sh 11 + 22
33
函式的返回值
使用return返回值的時候 只能返回 1-255的整數
函式使用return返回值,通常只是用來提供其它地方呼叫獲取狀態,因此通常僅返回0或者1;0標示成功,1標示失敗.
使用echo可以返回任何字串結果.
通常用於返回資料,比如乙個字串或者列表值
函式的返回方式
方法一 return
方法二 echo
示例 編寫 getuser.sh 查詢使用者列表
#!/bin/bash
function get_user
user_list=`get_user` #將函式變成結果集使用
for u in $user_list
do echo $u
done
執行 結果
~$ ./getuser.sh
root
daemon
binsys
sync
games
manlp
mail
news
uucp
proxy
sshd
.....
區域性變數和全域性變數
不做特殊說明,shell中的變數都是全域性變數 ,建議在大型指令碼程式函式中,慎用全域性變數
定義區域性變數
定義區域性變數時,使用local關鍵字
函式內和外部若存在同名變數,則函式內部變數覆蓋外部變數
示例 編寫 test.s**件
#!/bin/bash
var1="hello world"
function test
test
echo $var1
執行 結果
~$ ./test.sh
87hello world
函式庫:
定義乙個函式庫,該函式庫實現以下幾個函式:
使用方法
假如編寫 myfunction.sh 裡面包含的都是 各種function
那我們想使用myfunction.sh的時候 直接 可以使用
#!/bin/bash
. myfunction
# 可以直接使用 myfunction.sh 中的函式
經驗之談
1.庫檔案的字尾是任意的,但一般使用 .lib
2.庫檔案通常沒有執行選項
3.庫檔案無需和指令碼同級目錄,只需在指令碼中引用時指定
4.第一行一般使用#!/bin/echo,輸出警告資訊,避免使用者執行
shell指令碼 函式的使用
bin bash 函式入門 function test test注意 呼叫函式的時候,直接函式名呼叫即可 寫乙個接收兩個數字引數的函式,計算和並輸出結果 bin bash 接收兩個引數,求和,並輸出結果 function add add 10 20第乙個指令碼 test func filemd5.s...
shell指令碼高階
接著上篇部落格,今天整理一下關於條件測試和條件語句方面的知識。在編寫shell指令碼時,經常需要對一些條件進行判斷,可以使用測試命令test輔助完成測試過程。test命令測試特定的表示式是否成立,當條件成立時,命令執行後的返回值為0,否則為其他數值。條件測試的基本格式有 格式1 test expre...
shell指令碼高階
流程控制 程式設計中的邏輯處理 順序執行 選擇執行 迴圈執行 迴圈 迴圈執行 將某 段重複執行多次 重複執行多少次 迴圈次數事先已知 迴圈次數事先未知 有進入條件和退出條件 for,while,until for迴圈 for 變數名 in 列表 do 迴圈體done 執行機制 依次將列表中的元素賦值...