Shell函數

来源:http://www.cnblogs.com/freescience/archive/2017/08/08/7309315.html
-Advertisement-
Play Games

下麵的例子定義了一個函數併進行調用: #!/bin/bash demoFun(){ echo "這是我的第一個 shell 函數!" } echo " 函數開始執行 " demoFun echo " 函數執行完畢 " 輸出結果: 函數開始執行 這是我的第一個 shell 函數! 函數執行完畢 下麵定 ...


下麵的例子定義了一個函數併進行調用:
#!/bin/bash
demoFun(){
    echo "這是我的第一個 shell 函數!"
}
echo "-----函數開始執行-----"
demoFun
echo "-----函數執行完畢-----"
輸出結果:
-----函數開始執行----- 這是我的第一個 shell 函數! -----函數執行完畢-----
下麵定義一個帶有return語句的函數:
#!/bin/bash
funWithReturn(){
    echo "這個函數會對輸入的兩個數字進行相加運算..."
    echo "輸入第一個數字: "
    read aNum
    echo "輸入第二個數字: "
    read anotherNum
    echo "兩個數字分別為 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "輸入的兩個數字之和為 $? !"
輸出類似下麵:
這個函數會對輸入的兩個數字進行相加運算... 輸入第一個數字:  1 輸入第二個數字:  2 兩個數字分別為 1 和 2 ! 輸入的兩個數字之和為 3 !
函數返回值在調用該函數後通過 $? 來獲得。 函數參數 在Shell中,調用函數時可以向其傳遞參數。在函數體內部,通過 $n 的形式來獲取參數的值,例如,$1表示第一個參數,$2表示第二個參數... 帶參數的函數示例:
#!/bin/bash
funWithParam(){
    echo "第一個參數為 $1 !"
    echo "第二個參數為 $2 !"
    echo "第十個參數為 $10 !"
    echo "第十個參數為 ${10} !"
    echo "第十一個參數為 ${11} !"
    echo "參數總數有 $# 個!"
    echo "作為一個字元串輸出所有參數 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
輸出結果:
第一個參數為 1 ! 第二個參數為 2 ! 第十個參數為 10 ! 第十個參數為 34 ! 第十一個參數為 73 ! 參數總數有 11 個! 作為一個字元串輸出所有參數 1 2 3 4 5 6 7 8 9 34 73 !
註意,$10 不能獲取第十個參數,獲取第十個參數需要${10}。當n>=10時,需要使用${n}來獲取參數。
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 記憶體映射處理大文件 運行環境: linux 實現語言: C++ 文件大小: 大於10G 1、為什麼要用記憶體映射 a、一般讀寫大文件操作會帶來較多的磁碟IO開銷 b、數據流一次性寫入大量數據到記憶體容易達到記憶體限制 c、效率問題 2、基本概念 2.1 記憶體映射 簡單定義: 一個文件到一塊記憶體的映射。 解 ...
  • 1.資料庫的備份 備份=拷貝加管理,防止數據的丟失同時記錄用戶的操作記錄。其中最有效的備份是對IT架構進行備份。 原則: (1)資料庫要定期備份,備份的周期應當根據應用數據系統可承受的恢復時間,而且定期備份的時間應當在系統負荷最低的時候進行。對於重要的數據,要保證在極端情況下的損失都可以正常恢復。 ...
  • 1.數學函數 用來處理數值數據方面的運算,主要的數學函數有:絕對值函數,三角函數,對數函數,隨機函數。使用數學函數過程中,如果有錯誤產生,該函數會返回null值。 數學函數 功能介紹 組合鍵 abs(x) 返回x的絕對值 整數本身 pi() 返回圓周率 返回pa的值,預設顯示6位 sqrt(x) 返 ...
  • 背景 背景 MySQL/InnoDB的加鎖分析,一直是一個比較困難的話題。我在工作過程中,經常會有同事咨詢這方面的問題。同時,微博上也經常會收到MySQL鎖相關的私信,讓我幫助解決一些死鎖的問題。本文,準備就MySQL/InnoDB的加鎖問題,展開較為深入的分析與討論,主要是介紹一種思路,運用此思路 ...
  • 資料庫系列 隨著互聯網技術愈發普及,業務情景愈發豐富,各行各業更加意識到數據的價值,而資料庫正是數據發揮價值的技術根基。關於資料庫的乾貨,無論是小鮮肉還是老司機,總能在DBAplus社群解你所需。 1 MySQL 餓了麽MySQL異地多活的數據雙向複製經驗談-陳永庭 比MySQL快10倍?這可能是目 ...
  • CREATE OR REPLACE PROCEDURE "PROC_INS_DAY_DOCTOR_LL"(v_date in VARCHAR) is --PROC_INS_DAY_DOCTOR_LL 是存儲函數名 v_id DAY_DOCTOR_STATS.DDOS_ID%TYP... ...
  • 如果有很多表需要刪除,而表中有相同的首碼,我們可能需要如下語句: 如果我們手動寫,可能需要很多重覆性的工作而且可能還不知道表名稱。因此我們可以通過sql語句輸出上面的刪除表語句 執行sql語句: 註意: like 'pre_%' 其中 pre_是你需要替換的表首碼.當然你也可以根據自己的情況寫規則。 ...
  • mysql管理工具: 常用的MySql資料庫管理工具主要有(這是我用過的): 1.SQLyog 2.navicat for mysql 3.DbVisualizer 4.Navicat Premium 那麼,它們的安裝包可以在我的網盤去下載: 鏈接:http://pan.baidu.com/s/1m ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...