那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

shell腳本基礎(chǔ)函數(shù)

FPGA學(xué)姐 ? 來(lái)源:FPGA學(xué)姐 ? 2023-05-22 09:20 ? 次閱讀

在bash中定義函數(shù)

97749994-f815-11ed-90ce-dac502259ad0.png

function和函數(shù)名字可以任意省略一個(gè)

需要注意的是,函數(shù)必須在被調(diào)用之前定義

97952038-f815-11ed-90ce-dac502259ad0.png

如果沒(méi)有特別標(biāo)注,bash中的變量都是全局變量,即使定義在函數(shù)內(nèi)部,所以在函數(shù)外部也可以使用;反過(guò)來(lái)也一樣,在函數(shù)外部定義的變量在函數(shù)內(nèi)部也可以使用。例如在函數(shù)內(nèi)部修改變量

#!/bin/bash
update_prefecture()
{
    prefecture=Aomori  ←----- 修改在函數(shù)外部定義的變量的值
    echo "$prefecture"
}
prefecture=Hokkaido  ←----- 定義變量(全局變量)
echo "$prefecture"
update_prefecture
echo "$prefecture"

結(jié)果是

97a9572e-f815-11ed-90ce-dac502259ad0.png

若想定義只作用于函數(shù)內(nèi)部的局部變量可以加local字段

local 變量名=值

對(duì)于嵌套調(diào)用的兩個(gè)函數(shù),在外部函數(shù)中定義一個(gè)局部變量prefecture,然后在內(nèi)部被調(diào)用的函數(shù)中修改變量的值,則修改后的結(jié)果對(duì)外部函數(shù)也是有影響的,例如:

#!/bin/bash
update_prefecture1()
{
    echo "[update_prefecture1] $prefecture"
    prefecture=Aomori
    echo "[update_prefecture1] $prefecture"
}
update_prefecture2()
{
    local prefecture=Iwate
    echo "[update_prefecture2] $prefecture"
    update_prefecture1
    echo "[update_prefecture2] $prefecture"
}
prefecture=Hokkaido
echo "$prefecture"
update_prefecture2
echo "$prefecture"


$ ./local_param_nest.sh
Hokkaido
[update_prefecture2] Iwate
[update_prefecture1] Iwate   ←----- 內(nèi)部函數(shù)沿用在外部函數(shù)中定義的變量的值
[update_prefecture1] Aomori  ←----- 在內(nèi)部函數(shù)中修改變量值
[update_prefecture2] Aomori  ←----- 外部函數(shù)的值也被修改了
Hokkaido  ←----- 函數(shù)外部的全局變量不受影響

local命令可以使用和declare命令相同的參數(shù)選,例如定義數(shù)組類型的局部變量

local-aprefectures=(IwateMiyagi)

要想在函數(shù)內(nèi)部使用指定的參數(shù),可以使用位置參數(shù)$1, $2

#!/bin/bash
print_argument()
{
    echo "$0 = $0"
    echo "$1 = $1"
    echo "$2 = $2"
    echo "$3 = $3"
    echo "$# = $#"
}
print_argument aaa bbb  ←----- 在調(diào)用函數(shù)時(shí)傳遞參數(shù)

FUNCNAME是bash的一個(gè)數(shù)組類型的變量,里面保存了當(dāng)前運(yùn)行的所有函數(shù)名,通過(guò)變量FUNCNAME獲取并輸出函數(shù)名

97d3d5f8-f815-11ed-90ce-dac502259ad0.png

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62978
  • Shell腳本
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    8023
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【RT-Thread學(xué)習(xí)筆記】結(jié)合案例學(xué)習(xí)調(diào)試shell腳本

    shell編程掃盲系列】結(jié)合真實(shí)案例學(xué)習(xí)如何調(diào)試shell腳本
    的頭像 發(fā)表于 07-29 03:32 ?2153次閱讀
    【RT-Thread學(xué)習(xí)筆記】結(jié)合案例學(xué)習(xí)調(diào)試<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>

    shell腳本進(jìn)階】幾個(gè)常用的shell進(jìn)階腳本

    shell腳本進(jìn)階】幾個(gè)常用的shell進(jìn)階腳本
    的頭像 發(fā)表于 09-19 08:59 ?1966次閱讀
    【<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>進(jìn)階】幾個(gè)常用的<b class='flag-5'>shell</b>進(jìn)階<b class='flag-5'>腳本</b>

    linux shell腳本分享

    今天浩道跟大家分享shell腳本硬核干貨,可以說(shuō)是拿來(lái)即用序列!
    發(fā)表于 02-17 09:13 ?441次閱讀

    Linux Shell腳本入門到實(shí)戰(zhàn)詳解

    Linux Shell腳本入門到實(shí)戰(zhàn)詳解
    發(fā)表于 02-17 15:03 ?662次閱讀

    Linux shell腳本分享

    今天浩道跟大家分享幾個(gè)Linux運(yùn)維中常用到的shell腳本!
    發(fā)表于 07-18 09:53 ?581次閱讀
    Linux <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>分享

    嵌入式和物聯(lián)網(wǎng)的shell腳本學(xué)習(xí)指南之shell腳本入門免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)技術(shù)的是嵌入式和物聯(lián)網(wǎng)的shell腳本學(xué)習(xí)指南之shell腳本入門免費(fèi)下載。
    發(fā)表于 09-11 17:15 ?20次下載
    嵌入式和物聯(lián)網(wǎng)的<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>學(xué)習(xí)指南之<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>入門免費(fèi)下載

    shell腳本最簡(jiǎn)明的教程

    Shell腳本,就是利用Shell的命令解釋的功能,對(duì)一個(gè)純文本的文件進(jìn)行解析,然后執(zhí)行這些功能,也可以說(shuō)Shell腳本就是一系列命令的集合
    的頭像 發(fā)表于 10-16 11:27 ?4888次閱讀
    <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>最簡(jiǎn)明的教程

    109個(gè)實(shí)用shell腳本分享

    Shell腳本,就是利用Shell的命令解釋的功能,對(duì)一個(gè)純文本的文件進(jìn)行解析,然后執(zhí)行這些功能,也可以說(shuō)Shell腳本就是一系列命令的集合
    的頭像 發(fā)表于 03-16 08:58 ?2685次閱讀

    shell腳本基礎(chǔ)知識(shí)

    shell腳本是一個(gè)文件,里面存放的是特定格式的指令,系統(tǒng)可以使用腳本解析器翻譯或解析指令并執(zhí)行(無(wú)需編譯),shell腳本的本質(zhì)是
    的頭像 發(fā)表于 04-17 15:00 ?1134次閱讀

    剖析Linux shell 函數(shù)實(shí)現(xiàn)

    作為一個(gè)嵌入式 Linux 工程師,肯定需要編寫(xiě) shell 腳本進(jìn)行一些自動(dòng)化工作。剛好,我最近就有類似需求——一鍵交叉編譯 DDS。本著“編寫(xiě)漂亮代碼的原則”,我用到了 **shell
    的頭像 發(fā)表于 05-12 10:27 ?541次閱讀
    剖析Linux <b class='flag-5'>shell</b> <b class='flag-5'>函數(shù)</b>實(shí)現(xiàn)

    shell腳本基礎(chǔ)函數(shù)

    function和函數(shù)名字可以任意省略一個(gè)
    的頭像 發(fā)表于 05-22 09:19 ?420次閱讀
    <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>基礎(chǔ)<b class='flag-5'>函數(shù)</b>

    Linux Shell腳本經(jīng)典案例分享

    ? 作為一名 Linux 運(yùn)維工程師,會(huì)寫(xiě)好的腳本不僅能提高工作效率,還能有更多的時(shí)間做自己的事。最近在網(wǎng)上沖浪的時(shí)候,發(fā)現(xiàn)大家對(duì)Shell腳本都有“心結(jié)”,要么覺(jué)得自己寫(xiě)出來(lái)不好看,要么根本無(wú)從下手。 下面分享249個(gè)真實(shí)
    發(fā)表于 06-16 14:03 ?680次閱讀
    Linux <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>經(jīng)典案例分享

    BASH shell腳本篇—函數(shù)

    函數(shù)是代碼重用的最重要方式。Bash函數(shù)可以定義為一組命令,在bash腳本中多次調(diào)用。
    的頭像 發(fā)表于 10-20 16:31 ?1183次閱讀

    Shell腳本檢查工具ShellCheck介紹

    ShellCheck是一個(gè)用于bash/sh shell腳本的靜態(tài)分析工具,可以輔助檢查腳本語(yǔ)法錯(cuò)誤,給出建議增強(qiáng)腳本健壯性。
    的頭像 發(fā)表于 12-27 13:43 ?2274次閱讀
    <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>檢查工具ShellCheck介紹

    Linux從零到精通:最簡(jiǎn)單的Shell腳本入門教程

    通過(guò)簡(jiǎn)單的命令和腳本,實(shí)現(xiàn)對(duì)系統(tǒng)的靈活控制和自動(dòng)化管理。 shell腳本前言 shell腳本入門 she
    的頭像 發(fā)表于 12-05 09:56 ?672次閱讀
    Linux從零到精通:最簡(jiǎn)單的<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>入門教程
    百家乐官网没有必胜| 娱网百家乐官网补丁| 网络博彩| bet365主页yalanad| 百家乐大西洋城v| 百家乐视频官方下载| 线上百家乐官网平玩法| 温州市百家乐官网鞋业有限公司| 澳门百家乐官网赢技巧| 抚州市| 澳门新葡京| 娱乐城注册送彩金100| 大发888官网首页| 威尼斯人娱乐怎么样| 澳门档百家乐的玩法技巧和规则| 缅甸百家乐赌博现场下载| 百家乐游戏平台架设| 网上百家乐危险| 丽星百家乐官网的玩法技巧和规则| 百家乐官网suncity| 合乐8百家乐官网娱乐城| 百家乐官网赌博赌博网站| 百家乐官网威尼斯人| 星港城百家乐官网娱乐城| 百家乐官网开户送彩网址| 百家乐官网的必赢方法| 博九百家乐官网娱乐城| 百家乐官网网上赌博| 百家乐官网现实赌场| 百家乐官网算牌皇冠网| 百家乐官网真人荷官| 百家乐官网假在哪里| 真钱百家乐官网赌博| 赌百家乐官网咋赢对方| 真人百家乐官网海立方| 哈尔滨百家乐官网赌场| 百家乐官网娱乐求指点呀| 大世界百家乐官网娱乐城| 玩百家乐官网新太阳城| 网络百家乐官网软件真假| 百家乐官网娱乐场真人娱乐场|