Shell指令碼中的自定義函式
在寫程式時,經常會用到函式,一般開發工具擁有豐富的函式庫。但有時還需要根據自己的需要自定義函式滿足我們的需求。
在linux中,寫shell指令碼也一樣,有時會用到自定義函式。
函式,最簡單的定義為:將一組命令集或語句形成一個可用塊,這些塊稱為函式。
1、定義函式的格式:
function-name ( ){
command1
........
}
或
#函式名前面也可以加上function關鍵字
function function-name( ) {
command1
........
}
2.函式呼叫
以下是一個函式的指令碼例項:
#!/bin/bash
function hello(){ #宣告函式
echo "Hello!" #函式的主體,輸出"Hello!"
} #函式結束
hello #呼叫函式
3.引數傳遞
向函式傳遞引數就像在指令碼是使用變數位置$1,$2,$3...$9
以下是一個傳遞引數的例項:
#該指令碼執行的結果是: Hello! The first parameter is 'good'.#!/bin/bash function hello(){ echo "Hello! The first parameter is '$1'." } hello good
4.函式檔案
儲存函式的檔案,用以上的例子寫成一個函式檔案如下:
#!/bin/bash
function hello ( ){
echo "Hello!"
return 1
}
上面的hellofunction檔案就是一個函式檔案,可通過另一個指令碼來呼叫
#!/bin/bash
. hellofunction #呼叫函式檔案,點和hellofunction之間有個空格
hello #呼叫函式
5.載入和刪除用set檢視已載入的函式
用unset function-name 取消載入
舉例如下:
#!/bin/bash
#hellof
. hellofunction
unset hello
hello #因為已經取消載入,所以會出錯
相關推薦
學會使用MySQL中自定義函式和儲存過程
一、快速瞭解什麼是儲存過程和函式? 儲存過程和函式是事先經過編譯並存儲在資料庫中的一段 SQL 語句的集合,呼叫儲存過程 和函式可以簡化應用開發人員的很多工作,減少資料在資料庫和應用伺服器之間的傳輸,對 於提高資料處理的效率是有好處的。 在對儲存過程或函式進行操作時,需要
hive中自定義函式及自定義json字串解析函式
hive中如何定義自己的函式 寫一個Java 程式,實現想要的函式功能 1.匯入hive安裝目錄的lib目錄的包 2新建一個類繼承 UDF類 3.過載父類中evaluate方法; 4.寫下自己的邏輯 package test; import
ThinkPHP3.2.2中自定義函式的一些方法
thinkphp中自定義函式的使用方法: 一、將函式放置於系統目錄:ThinkPHP/Common/function.php 下,可直接呼叫; 二、將自定義函式旋轉於系統目錄擴充套件函式檔案:ThinkPHP/Common/extend.php下,呼叫時需要
EXCEL 中自定義函式的應用(關於 XOR 在 EXCEL 中的用法 及 文字型數字求和)
EXCEL 中,能否同調用內建函式一樣在工作表中呼叫自已製作的自定義函式,出現對話方塊.同時也能做到像內建函式對話方塊裡的說明?答案是肯定的,下面舉例說明:題目: ①對文字型一系列數字進行求和(SUM()返回0) ②對數值型的一系列數字異或操作(EX
Shell指令碼中的自定義函式
在寫程式時,經常會用到函式,一般開發工具擁有豐富的函式庫。但有時還需要根據自己的需要自定義函式滿足我們的需求。 在linux中,寫shell指令碼也一樣,有時會用到自定義函式。 函式,最簡單的定義為:將一組命令集或語句形成一個可用塊,這些塊稱為函式。 1、定義函式的格式:
shell中的自定義函式,返回值
shell中的自定義函式 直接看截圖和程式碼吧,一目瞭然! #!/bin/bash #如下語句會報錯,因為在呼叫test1函式之前要先宣告test1函式 #也就是說,函式的呼叫語句要放在函式的宣告的後面(呼叫函式語句的位置要放在函式宣告語句的位置的後面) #test1
shell中的自定義函式
shell中的自定義函式 自定義函式 基本語法 [ function ] funname[()] { Action; [return int;] } 呼叫直接寫函式名:funname [值] 注意: 1 函式體不能為空,函式體為空會報錯,裡面寫一條語句,比如 echo
Shell程式設計-自定義函式和shell指令碼除錯
1.自定義函式函式代表著一個或一組命令的集合,表示一個功能模組,常用於模組化程式設計一下是關於函式的重要說明 在shell中,函式必須先定義,再呼叫 使用 return value來獲取函式的返回值 函式在當前shell中執行,可以使用指令碼中的變數函式的格
Loadrunner自定義函式在指令碼中的應用樣例
#include "web_api.h"int SumFour(int a,int b,int c,int d) //自定義四個整型數字求和函式{ if ((a<100) || (a>9000) || (b<100) || (b>9000) || (c<100) || (c&g
shell中自定義函數
function shell 自定義一個打印函數參數的函數 [root@lynn-04 shell]# vim fun1.sh #!/bin/bash pri(){ echo "第一個參數為 $1" echo "第二個參數為 $2" echo "文件名
shell腳本中自定義日誌記錄到文件
%d shell fun logging pytho 文件 定義 日誌記錄 gin 自定義日誌函數和前期變量 # adirname - return absolute dirname of given file adirname() { odir=`pwd`; cd
除錯經驗——使用自定義函式在Oracle中實現類似LISTAGG函式的行轉列(字串連線)功能
問題描述: LISTAGG函式是一個很實用的函式,但僅在Oracle 11.2以後的版本中才有。 生產環境中有個資料庫是Oracle 11.1,需要行轉列,但並不能使用LISTAGG函式。 解決方法: 參考以下文章: https://oracle-base.com/artic
Mysql中儲存過程與自定義函式的區別
建立儲存過程: CREATE [definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_parameter ...]]) [ characteristi
shell指令碼中的函式與子shell
shell指令碼中的函式與子shell 原文https://www.jianshu.com/p/7db79d7997b5 函式 函式的使用 bash中也有函式。一個函式就是一個子程式,是用於實現一串操作的程式碼塊。bash中的函式的形式如下: functi
C# winform 自定義函式中找不到Form中的控制元件和定義的全域性變數
今天碰到一個比較狗血的問題,想了很多辦法,最後發現,原來如此的坑。 在新建一個form頁面後,我們在程式碼頁面寫程式碼,往往會寫自定義的方法,一般情況下,在自定義的方法中是可以找到form頁面中的控制元件和自定義的全域性變數, 但是如果我們在自定義的方法前面加了static,那麼坑就出來啦,從此這個方法好
Hive面試題:請寫出你在工作中自定義過的udf函式,簡述定義步驟
步驟: 1.extends UDF,實現evaluate() 2.add JAR /home/hadoop/hivejar/udf.jar; 3.create temporary function tolowercase as 'com.ghgj.hive.udf.ToLowerCa
pyspark中的自定義函式
由於目前的pyspark不支援dataset,因此只能用dataframe+udf或者rdd的方式來對列進行資料處理。這裡介紹一下udf,udf註冊有兩種方法,一種是呼叫register方法,一種是呼叫udf函式。兩者都能在withColumn和apply中使用
如何在函式計算內部中自定義 DNS 解析
前言 很多時候為了做程式碼除錯,我們有需求將某個域名所對映的地址臨時對映成其他 IP。 例如我們需要 mock 某個三方服務程式碼的異常情況,我們可能自己構造一個 HTTP server,實現異常程式碼返回,用於函式計算中對該異常的處理。 在本地除錯的環境下,通常我們最直接的做法是修改 /etc/hos
在c語言中自定義了一個函式,在main中呼叫時提示找不到識別符號
解決方案一: 把定義的函式放在,main函式之前。 void f() { printf("Hello"); } main() { f(); } 解決方案二: 在main函式之前宣告。 void f(); main() { f
shell呼叫自定義函式及傳參
1 單個引數 #!/bin/bash function LoopPrint() { count=0; while [ $count -lt $1 ] ; do echo $count; let +