国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

運維Shell腳本小試牛刀(七):在函數(shù)文腳本件中調(diào)用另外一個腳本文件中函數(shù)|函數(shù)遞歸調(diào)用|函數(shù)后臺執(zhí)行

這篇具有很好參考價值的文章主要介紹了運維Shell腳本小試牛刀(七):在函數(shù)文腳本件中調(diào)用另外一個腳本文件中函數(shù)|函數(shù)遞歸調(diào)用|函數(shù)后臺執(zhí)行。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

運維Shell腳本小試牛刀(七):在函數(shù)文腳本件中調(diào)用另外一個腳本文件中函數(shù)|函數(shù)遞歸調(diào)用|函數(shù)后臺執(zhí)行,運維,linux,服務器


運維Shell腳本小試牛刀(一)

運維Shell腳本小試牛刀(二)

運維Shell腳本小試牛刀(三)::$(cd $(dirname $0); pwd)命令詳解

運維Shell腳本小試牛刀(四): 多層嵌套if...elif...elif....else fi_蝸牛楊哥的博客-CSDN博客

Cenos7安裝小火車程序動畫

運維Shell腳本小試牛刀(五):until循環(huán)

運維Shell腳本小試牛刀(六): Shell中的函數(shù)認知

運維Shell腳本小試牛刀(八): case模式忽略命令行參數(shù)大小寫

運維Shell腳本小試牛刀(七):從函數(shù)文件中調(diào)用另外一個腳本文件中函數(shù)


簡介: 從函數(shù)文件中調(diào)用函數(shù)

你可以把所有的函數(shù)存儲在一個腳本文件

你可以把所有的函數(shù)加載到當前腳本文件或者時命令行

加載函數(shù)文件的所有函數(shù)的語法如下:

. /path/to/your/functions.sh


一: 編寫函數(shù)文件

[root@www dicfor]# cat myfunctions.sh
#==================================================================================================================
#
#
# ? ? ? ? ? ? ? ? ? ? ? ? ? FILE: ?myfunctions.sh
# ? ? ? ? ? ? ? ? ? ? ? ? ? USAGE: ./myfunctions.sh
# ? ?DESCRIPTION: ? 函數(shù)定義:從函數(shù)文件中調(diào)用函數(shù),可以把所有的函數(shù)存儲在一個文件中,然后把所有的函數(shù)加載到當前腳本或是命令行
# ? ? ? ?OPTIONS: -------
# ? ? ? ?REQUIREMENTS: ---------
#?
# ? ? ? ?BUGS: ------
# ? ? ? ?NOTES: --------?
# ? ? ? ?AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com
# ? ?ORGANIZATION:
# ? ? ? ?CREATED: 2023-8-24 09:11:20 ? ?
# ? ? ? ?REVISION: --------
#
#
#
#
#
#====================================================================================================================
# 加載函數(shù)文件中的所有函數(shù)的語法如下: . /path/to/your/functions.sh

# 定義變量
declare -r TRUE=0
declare -r FALSE=0
declare -r PASSWD_FILE=/etc/passwd

###################################################################################################################
#
# ? 用途: 將字符串轉(zhuǎn)換為小寫
# ? ? 參數(shù)
# ? ? ? $1 -> 要轉(zhuǎn)換為小寫的字符串
#
#
#
#
####################################################################################################################
function to_lower() {
? # 定義一個本地變量str
? local str="$@"
? # 定義本地變量output
? local output
? # 將變量str的值轉(zhuǎn)換為小寫符賦值給變量output
? output=$(tr ' [A-Z] ' ' [a-z] '<<<"${str}")
? echo $output

}

###################################################################################################################
#
# ? 用途: 如果腳本root用戶執(zhí)行則返回true
# ? ? 參數(shù) 無
# ? 返回值: True或者Flase
#
#
#
#
####################################################################################################################

function is_root()
{
? # 如果運行此腳本的賬號的uid等于0,則返回0,否則返回1
? [ $(id -u) -eq 0 ] && return $TRUE || return $FALSE


}
###################################################################################################################
#
# ? 用途: 如果用戶名存在于文件/etc/passwd 中則返回true
# ? ? 參數(shù)
# ? ? ? $1 (用戶名) -> 要在文件/etc/passwd 中檢查的用戶名
# ? ? ? 返回值: True 或者 False
#
#
#
#
####################################################################################################################
function is_user_exits()
{
? ?# 定義本地變量u
? ?local u="$1"
? ?# 如果文件/etc/passwd中存在以變量$u的值為開頭的行,則返回0,否則返回1
? ?grep -q "^${u}" $PASSWD_FILE && return $TRUE || return $FALSE

}
?

二: 加載函數(shù)文件到當前shell環(huán)境


[root@www dicfor]# pwd /usr/local/example/dicfor [root@www dicfor]# . /usr/local/example/dicfor/myfunctions.sh -bash: declare: TRUE: 只讀變量 -bash: declare: FALSE: 只讀變量 -bash: declare: PASSWD_FILE: 只讀變量 ?

三: 編寫加載myfunctions.sh函數(shù)文件的腳本文件?


[root@www dicfor]# cat myfunctionsdemo.sh?
#==================================================================================================================
#
#
# ? ? ? ? ? ? ? ? ? ? ? ? ? FILE: ?functionsdemo.sh
# ? ? ? ? ? ? ? ? ? ? ? ? ? USAGE: ./functionsdemo.sh
# ? ?DESCRIPTION: ? 函數(shù)定義,在該文件中加載一個函數(shù)文件myfunctions.sh到該腳本文件中
# ? ? ? ?OPTIONS: -------
# ? ? ? ?REQUIREMENTS: ---------
#?
# ? ? ? ?BUGS: ------
# ? ? ? ?NOTES: --------?
# ? ? ? ?AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com
# ? ?ORGANIZATION:
# ? ? ? ?CREATED: 2023-8-24 09:11:20 ? ?
# ? ? ? ?REVISION: --------
#
#
#
#
#
#====================================================================================================================
# 加載函數(shù)文件myfunctions.sh
# 這里的路徑需要根據(jù)你的實際環(huán)境作出跳轉(zhuǎn)
. /usr/local/example/dicfor/myfunctions.sh

# 定義本地變量
# var1時沒有被myfunctions.sh使用的
var1="The Mahabharata is the longest and,arguably,one of the greatest epicpoems is any language.."

# 調(diào)用函數(shù)is root , 指定成功或失敗,會分別打印不同的信息
is_root && echo "You are logged in as root." || echo "You are not logged in as root"

# 調(diào)用函數(shù)is_use_exits
is_user_exits "mysql" && echo "Account found." || echo "Account not found."

# 打印變量的值var1
echo -e "*** Orignal quote: \n${var1}"?

# 調(diào)用函數(shù)to_lower()
# 將#var1 作為參數(shù)傳遞給to_lower()

# 在echo 內(nèi)使用的命令替換
echo -e "*** Lowercase version: \n$(to_lower ${var1})"
?

四: 執(zhí)行該腳本|看看該腳本是否已調(diào)用引入的腳本函數(shù)


[root@www dicfor]# ./myfunctionsdemo.sh?
You are logged in as root.
Account found.
*** Orignal quote:?
The Mahabharata is the longest and,arguably,one of the greatest epicpoems is any language..
*** Lowercase version:?
the mahabharata is the longest and,arguably,one of the greatest epicpoems is any language..

五: 函數(shù)遞歸調(diào)用?

[root@www functiondic]# cat functionnestedCalled.sh?
#==================================================================================================================
#
#
# ? ? ? ? ? ? ? ? ? ? ? ? ? FILE: ?functionNestedCalled.sh
# ? ? ? ? ? ? ? ? ? ? ? ? ? USAGE: ./functionNestedCalled.sh
# ? ?DESCRIPTION: ?Shell中函數(shù)遞歸調(diào)用
# ? ? ? ?OPTIONS: -------
# ? ? ? ?REQUIREMENTS: ---------
#?
# ? ? ? ?BUGS: ------
# ? ? ? ?NOTES: --------?
# ? ? ? ?AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com
# ? ?ORGANIZATION:
# ? ? ? ?CREATED: 2023-8-24 09:11:20 ? ?
# ? ? ? ?REVISION: --------
#
#
#
#
#
#====================================================================================================================
# 定義函數(shù)factorial()--計算給定命令行參數(shù)的階層
function factorial {

? # 定義本地變量i
? local i=$1
? # 定義本地變量f
? local f
? # 聲明變量為整數(shù)
? declare -i i
? # 聲明變量f為整數(shù)
? declare -i f

? # factorial 函數(shù)被調(diào)用,只到調(diào)用$f的值<-2
? # 開始遞歸
?[ $1 -le 2 ] && echo $i || { f=$(( i - 1)); f=$(factorial $f); f=$(( f * i )); echo ${f}; }?

}

# 顯示函數(shù)用法
[ $# -eq 0 ] && ?{ echo "Usage: $0 number"; exit 1; }

# 調(diào)用函數(shù)factorial
factorial $1
?


執(zhí)行腳本:

[root@www functiondic]# ./functionnestedCalled.sh?
Usage: ./functionnestedCalled.sh number
[root@www functiondic]# ./functionnestedCalled.sh 2
2
[root@www functiondic]# ./functionnestedCalled.sh 4
24
[root@www functiondic]# ./functionnestedCalled.sh 24
-7835185981329244160
[root@www functiondic]# ./functionnestedCalled.sh 10
3628800
?

六:? Shell腳本函數(shù)后臺執(zhí)行


[root@www functiondic]# cat saemoncalledFunction.sh?
#==================================================================================================================
#
#
# ? ? ? ? ? ? ? ? ? ? ? ? ? FILE: ?saemoncalledFunction.sh
# ? ? ? ? ? ? ? ? ? ? ? ? ? USAGE: ./saemoncalledFunction.sh
# ? ?DESCRIPTION: ?Shell 中函數(shù)放在后臺執(zhí)行
# ? ? ? ?OPTIONS: -------
# ? ? ? ?REQUIREMENTS: ---------
#?
# ? ? ? ?BUGS: ------
# ? ? ? ?NOTES: --------?
# ? ? ? ?AUTHOR: ---------YangGe (TOM) ,YangGe.freedom@icloud.com
# ? ?ORGANIZATION:
# ? ? ? ?CREATED: 2023-8-24 09:11:20 ? ?
# ? ? ? ?REVISION: --------
#
#
#
#
#
#====================================================================================================================
# 定義函數(shù)progress,顯示進度條
progress(){
?echo -n "$0: Please wait.............."
? # 執(zhí)行無限while循環(huán)
? while true
? do
? ? echo -n "."
? ? # 休眠5秒
? ? sleep 5
? done

}

# 定義函數(shù)dobackup
dobackup(){
?# 運行備份命令
?tar -zcvf /dev/st0 /home >/dev/null 2>&1

}

# 將函數(shù)放在后臺運行
progress &

# 保存函數(shù)progress()運行的進程號
# 需要使用PID來結(jié)束此函數(shù)
MYSELF=$!

# 開始備份
# 轉(zhuǎn)移控制到函數(shù)dobackup
dobackup

# 殺死進程
kill $MYSELF > /dev/null 2>&1
echo -n ".....done."
echo
?


腳本執(zhí)行效果:


[root@www functiondic]# ./saemoncalledFunction.sh?
./saemoncalledFunction.sh: Please wait.....................done.
?文章來源地址http://www.zghlxwxcb.cn/news/detail-701851.html

到了這里,關(guān)于運維Shell腳本小試牛刀(七):在函數(shù)文腳本件中調(diào)用另外一個腳本文件中函數(shù)|函數(shù)遞歸調(diào)用|函數(shù)后臺執(zhí)行的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 網(wǎng)頁學習-小試牛刀

    網(wǎng)頁學習-小試牛刀

    分為三大部分: HTML 、 CSS 和 JavaScript 。 HTML(Hyper Text Markup Language,即超文本標記語言),網(wǎng)頁骨架。 CSS(Cascading Style Sheets,層疊樣式表),使頁面變得美觀、優(yōu)雅,網(wǎng)頁皮膚。 JavaScript(簡稱JS,是一種腳本語言),實現(xiàn)實時、動態(tài)、交互的頁面功能,網(wǎng)頁肌肉。 學習目的

    2023年04月22日
    瀏覽(46)
  • Mapreduce小試牛刀(1)

    Mapreduce小試牛刀(1)

    1.與hdfs一樣,mapreduce基于hadoop框架,所以我們首先要啟動hadoop服務器 --------------------------------------------------------------------------------------------------------------------------------- 2.修改hadoop-env.sh位置JAVA_HOME配置,在JAVA_HOME前面加上export,重啟主虛擬機,最好也把另外兩個節(jié)點同位置的

    2024年02月04日
    瀏覽(23)
  • verilator——牛刀小試

    verilator——牛刀小試

    安裝verilator可見:https://blog.csdn.net/qq_40676869/article/details/132648522?spm=1001.2014.3001.5501 編寫一個異或的電路模塊如下: top.v 編寫C++測試文件 tb_top.cpp 編譯并運行 –cc 將.v文件翻譯成c++ –exe 創(chuàng)建可執(zhí)行文件 –build verilator自動進行make –trace 記錄波形 波形如下: github鏈接:https:/

    2024年02月10日
    瀏覽(23)
  • 快速上手kettle(二)小試牛刀

    快速上手kettle(二)小試牛刀

    目錄 一 、前言 二 、兩個小目標 三、 kettle核心概念介紹 3.1 轉(zhuǎn)換 3.1.1 步驟(Step) 3.1.2 跳(Hop) 3.1.3 元素據(jù) 3.1.4 數(shù)據(jù)類型 3.1.5 并發(fā)執(zhí)行 3.2 作業(yè) 四、實踐操作 4.1 案例1 將csv文件轉(zhuǎn)換成excel文件 4.1.1 在kettle中新建一個轉(zhuǎn)換 4.1.2選擇輸入控件并設置 4.1.3 選擇輸出控件并設置 4.

    2024年02月06日
    瀏覽(25)
  • 【LED子系統(tǒng)】八、小試牛刀

    個人主頁:董哥聊技術(shù) 我是董哥,高級嵌入式軟件開發(fā)工程師,從事嵌入式Linux驅(qū)動開發(fā)和系統(tǒng)開發(fā),曾就職于世界500強公司! 創(chuàng)作理念:專注分享高質(zhì)量嵌入式文章,讓大家讀有所得!

    2024年02月06日
    瀏覽(22)
  • 小試牛刀 -- Kali Linux安裝在手機

    小試牛刀 -- Kali Linux安裝在手機

    ? ? ?Kali Linux是基于Debian的Linux的發(fā)行版,里面有許多關(guān)于網(wǎng)絡滲透的程序,是目前在網(wǎng)絡安全領(lǐng)域經(jīng)常使用的工具,因此為了便于學習,在此進行Kali Linux的安裝,主要安裝在華為P50上,操作系統(tǒng)是鴻蒙4.0。 ? ?2.1 Termux的安裝及配置 ? ? ? ?(1)Termux的安裝 ? ? ? ?在安裝Te

    2024年01月23日
    瀏覽(30)
  • 爬蟲小試牛刀(爬取學校通知公告)

    完成抓取并解析DGUT通知公告12頁數(shù)據(jù),并提交excel文件格式數(shù)據(jù),數(shù)據(jù)需要包含日期標題,若能夠?qū)崿F(xiàn)將詳情頁主體內(nèi)容與發(fā)布人信息數(shù)據(jù)也一并抓取更佳 提交內(nèi)容:Excel數(shù)據(jù)文件 首先看到頁面呈現(xiàn)規(guī)則的各個方框,這意味著它們之間的一定是一樣的 此處該有圖 我們點開后

    2024年02月09日
    瀏覽(18)
  • 手動開發(fā)-實現(xiàn)SpringMVC底層機制--小試牛刀

    手動開發(fā)-實現(xiàn)SpringMVC底層機制--小試牛刀

    在這里說的底層機制的實現(xiàn)主要是指:前端控制器、Controller、Service注入容器、對象自動裝配、控制器方法獲取參數(shù)、視圖解析、返回json數(shù)據(jù)。 前端控制器就是核心控制器。在這里我們可以設計一個Servlet來充當核心控制器: LingDispatcherServlet.java .這個控制器的作用主要是接收

    2024年02月08日
    瀏覽(19)
  • 牛刀小試---二分查找(C語言)

    牛刀小試---二分查找(C語言)

    二分查找,也叫折半查找,是一種在 有序數(shù)組 中查找特定元素的算法。它通過比較中間元素和目標值的大小,將查找范圍縮小為一半,直到找到目標元素或者查找范圍為空。 ?1.?確定搜索范圍:首先,需要確定要在哪個區(qū)間內(nèi)進行查找。這可以通過比較目標值與中間元素的

    2024年01月17日
    瀏覽(26)
  • Python OpenCV 牛刀小試(練習)

    ? ? ? ? OpenCV在讀取圖像時,默認的顏色空間是BGR(藍綠紅),而在大多數(shù)其他的圖像處理庫和圖像格式中,使用的顏色空間是RGB(紅綠藍)。因此,當你需要使用OpenCV處理圖像,然后將處理結(jié)果傳遞給其他庫(如matplotlib、PIL等)進行進一步處理或顯示時,你需要將顏色空間

    2024年02月21日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包