Shell函数:Shell函数返回值、删除函数、在终端调用函数
生活随笔
收集整理的這篇文章主要介紹了
Shell函数:Shell函数返回值、删除函数、在终端调用函数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
函數(shù)可以讓我們將一個(gè)復(fù)雜功能劃分成若干模塊,讓程序結(jié)構(gòu)更加清晰,代碼重復(fù)利用率更高。像其他編程語言一樣,Shell 也支持函數(shù)。Shell 函數(shù)必須先定義后使用。
Shell 函數(shù)的定義格式如下: function_name () {list of commands[ return value ] } 如果你愿意,也可以在函數(shù)名前加上關(guān)鍵字 function: function function_name () {list of commands[ return value ] } 函數(shù)返回值,可以顯式增加return語句;如果不加,會將最后一條命令運(yùn)行結(jié)果作為返回值。
Shell 函數(shù)返回值只能是整數(shù),一般用來表示函數(shù)執(zhí)行成功與否,0表示成功,其他值表示失敗。如果 return 其他數(shù)據(jù),比如一個(gè)字符串,往往會得到錯(cuò)誤提示:“numeric argument required”。
如果一定要讓函數(shù)返回字符串,那么可以先定義一個(gè)變量,用來接收函數(shù)的計(jì)算結(jié)果,腳本在需要的時(shí)候訪問這個(gè)變量來獲得函數(shù)返回值。
先來看一個(gè)例子:#!/bin/bash # Define your function here Hello () { echo "Url is http://see.xidian.edu.cn/cpp/shell/" } # Invoke your function Hello
運(yùn)行結(jié)果:
$./test.sh
Hello World
$
調(diào)用函數(shù)只需要給出函數(shù)名,不需要加括號。
再來看一個(gè)帶有return語句的函數(shù):#!/bin/bash funWithReturn(){ echo "The function is to get the sum of two numbers..." echo -n "Input first number: " read aNum echo -n "Input another number: " read anotherNum echo "The two numbers are $aNum and $anotherNum !" return $(($aNum+$anotherNum)) } funWithReturn # Capture value returnd by last command ret=$? echo "The sum of two numbers is $ret !"
運(yùn)行結(jié)果:
The function is to get the sum of two numbers...
Input first number: 25
Input another number: 50
The two numbers are 25 and 50 !
The sum of two numbers is 75 !
函數(shù)返回值在調(diào)用該函數(shù)后通過 $? 來獲得。
再來看一個(gè)函數(shù)嵌套的例子:#!/bin/bash # Calling one function from another number_one () { echo "Url_1 is http://see.xidian.edu.cn/cpp/shell/" number_two } number_two () { echo "Url_2 is http://see.xidian.edu.cn/cpp/u/xitong/" } number_one
運(yùn)行結(jié)果:
Url_1 is http://see.xidian.edu.cn/cpp/shell/
Url_2 is http://see.xidian.edu.cn/cpp/u/xitong/
像刪除變量一樣,刪除函數(shù)也可以使用 unset 命令,不過要加上 .f 選項(xiàng),如下所示:
$unset .f function_name
如果你希望直接從終端調(diào)用函數(shù),可以將函數(shù)定義在主目錄下的 .profile 文件,這樣每次登錄后,在命令提示符后面輸入函數(shù)名字就可以立即調(diào)用。
Shell 函數(shù)的定義格式如下: function_name () {list of commands[ return value ] } 如果你愿意,也可以在函數(shù)名前加上關(guān)鍵字 function: function function_name () {list of commands[ return value ] } 函數(shù)返回值,可以顯式增加return語句;如果不加,會將最后一條命令運(yùn)行結(jié)果作為返回值。
Shell 函數(shù)返回值只能是整數(shù),一般用來表示函數(shù)執(zhí)行成功與否,0表示成功,其他值表示失敗。如果 return 其他數(shù)據(jù),比如一個(gè)字符串,往往會得到錯(cuò)誤提示:“numeric argument required”。
如果一定要讓函數(shù)返回字符串,那么可以先定義一個(gè)變量,用來接收函數(shù)的計(jì)算結(jié)果,腳本在需要的時(shí)候訪問這個(gè)變量來獲得函數(shù)返回值。
先來看一個(gè)例子:
再來看一個(gè)帶有return語句的函數(shù):
再來看一個(gè)函數(shù)嵌套的例子:
總結(jié)
以上是生活随笔為你收集整理的Shell函数:Shell函数返回值、删除函数、在终端调用函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shell break和continue
- 下一篇: Shell函数参数