Shell中函式的定義和使用
轉載地址:https://blog.csdn.net/zbw18297786698/article/details/77802037/
和其他語言一樣,在Shell語言中也有著函式。儘管在Shell中函式並非是必須的程式設計元素,但是通過使用函式,可以對程式進行更加好的組織。將一些相對獨立的程式碼變成函式,可以提高程式的可讀性和重用性。避免重複編寫大量相同的程式碼。
函式的定義
在Shell中可以通過下面的兩種語法來定義函式,分別如下:
function_name ()
{
statement1
statement2
....
statementn
}
或者
function function_name()
{
statement1
statement2
....
statementn
}
函式的呼叫
當某個函式定義好了以後,使用者就可以通過函式名來呼叫該函式了。在Shell中,函式呼叫的基本語法如下,
function_name parm1 parm2
下面定義了一個 sayhell()的方法,並呼叫
#! /bin/bash
function sayhello()
{
echo "Hello,World"
}
sayhello
程式碼呼叫結果
[root@VM_156_149_centos shell]# sh hello.sh
Hello,World
函式的返回值
首先,使用者利用return來返回某個數值,這個與絕大部分的程式設計語言是相同的。但是 在Shell中,return語句只能返回某個0-255之間的整數值。在Shell中還有一種更優雅的方法幫助使用者來獲得函式執行後的某個結果,那就是使用echo。在函式中,使用者需要將要返回的資料寫入到標準輸出(stout),通常這個操作是使用echo語句來完成的,然後在呼叫程式中將函式的執行結果賦值給一個變數。這種做法實際上就是一個命令替換的一個變種。
函式使用return返回值
函式的定義
#! /bin/bash
function sum()
{
returnValue=$(( $1 + $2 ))
return $returnValue
}
sum 22 4
echo $?
函式的呼叫
[root@VM_156_149_centos shell]# sh sum.sh
26
函式返回值大於0-255,出錯的情況
在上面的執行結果可以看到,所傳遞的兩個數的和被成功的返回。但是通過return只能返回整數值,並且是0-255的範圍,如果超出這個範圍就會錯誤的結果。例如將上面的程式碼換成下面的引數
sum 253 4
則執行結果如下,
[root@VM_156_149_centos shell]# sh sum.sh
1
可以發現,正確的結果應該是257,但是函式的返回值是1.
函式使用echo返回值
函式的定義
#! /bin/bash
function length()
{
str=$1
result=0
if [ "$str" != "" ] ; then
result=${#str}
fi
echo "$result"
}
len=$(length "abc123")
echo "The string's length is $len "
函式的呼叫
[root@VM_156_149_centos shell]# sh length.sh
The string's length is 6
相關文章
- shell 函式定義函式
- 如何在 Linux Shell 程式設計中定義和使用函式Linux程式設計函式
- 模型的列表定義中,使用函式時如何定義引數?模型函式
- shell自定義函式函式
- 函式基本定義和使用‘未完待續函式
- 02_函式定義及使用函式函式
- Shell 函式的使用函式
- 第 8 節:函式-函式定義和引數函式
- vue 在methods中定義的函式 not definedVue函式
- Linux Shell 自定義函式Linux函式
- shell-定義一個顏色輸出字串函式字串函式
- 關於變數的宣告和定義、內部函式和外部函式變數函式
- SQL Server 2005中的UDF(使用者定義函式)SQLServer函式
- 建立和測試分類器使用者定義函式函式
- Javascript中兩種方式定義函式的區別JavaScript函式
- shell 中怎麼定義常量
- 函式定義、函式的引數、函式的預設引數函式
- python函式的定義和呼叫是什麼?Python函式
- Shell程式設計-09-Shell中的函式程式設計函式
- 定義函式物件 (轉)函式物件
- 如何在函式內部定義函式?函式
- Linux Shell 自定義函式(定義、返回值、變數作用域)介紹Linux函式變數
- TDengine 3.0 中如何編譯、建立和使用自定義函式編譯函式
- 如何使用函式指標呼叫類中的函式和普通函式函式指標
- [譯]Kotlin中是應該定義函式還是定義屬性?Kotlin函式
- 兄弟連go教程(11)函式 - 函式定義Go函式
- C語言基礎-2、函式的定義與使用C語言函式
- HIVE中的自定義函式Hive函式
- 在jQuery定義自己函式jQuery函式
- python如何定義函式Python函式
- python---函式定義Python函式
- mysql函式定義語法MySql函式
- qt之函式重定義QT函式
- ts函式約束定義函式
- 方法(函式)的定義與引數函式
- JS函式的定義與呼叫方法JS函式
- 關於C++類方法函式指標的定義和使用方法C++函式指標
- 什麼是Python函式?如何定義函式?Python函式