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

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

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

shell腳本基礎(chǔ)知識匯總4

jf_78858299 ? 來源:阿Q正磚 ? 作者:阿Q正磚 ? 2023-02-15 10:49 ? 次閱讀

break與continue

與其他編程相同里的概念相同,代碼示例如下:

# break示例:
while true
do
    echo -n "輸入 1 到 5 之間的數(shù)字:"
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你輸入的數(shù)字為 $aNum!"
        ;;
        *) echo "你輸入的數(shù)字不是 1 到 5 之間的! 游戲結(jié)束"
            break
        ;;
    esac
done
# 輸出結(jié)果
輸入 1 到 5 之間的數(shù)字:3
你輸入的數(shù)字為 3!
輸入 1 到 5 之間的數(shù)字:7
你輸入的數(shù)字不是 1 到 5 之間的! 游戲結(jié)束




# continue示例
while true
do
    echo -n "輸入 1 到 5 之間的數(shù)字:"
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你輸入的數(shù)字為 $aNum!"
        ;;
        *) echo "你輸入的數(shù)字不是 1 到 5 之間的! 游戲結(jié)束"
            continue
            echo "游戲結(jié)束"
        ;;
    esac
done
# 輸出結(jié)果,無法結(jié)束
輸入 1 到 5 之間的數(shù)字:3
你輸入的數(shù)字為 3!
輸入 1 到 5 之間的數(shù)字:7
你輸入的數(shù)字不是 1 到 5 之間的! 游戲結(jié)束
輸入 1 到 5 之間的數(shù)字:

select

選擇一個列表中的一個值,item列表值可以分別單獨寫出來,也可以是一個列表

語法格式如下:

select var in item1 item2..itemN
do
    command
done

代碼示例如下:

list=(a b)
PS3="Please select the value:"
select var in ${list[*]};do
    break
done
echo "your select is $var"


# 輸出結(jié)果
1) a
2) b
Please select the value:1
your select is a

1.9 函數(shù)

函數(shù)定義

shell中函數(shù)的定義格式如下, 其中return的返回值在[0-225] 之間,如果不加return將以最后一條命令運行結(jié)果,作為返回值.


[ function ] funname()
{
    action;
    [return int;]
}

示例代碼:

# 完整格式定義函數(shù)
function test1() {
    echo "hello world1"
    return 0
}
# 簡寫的函數(shù)定義
test2() {
    echo "hello world2"

}


# 函數(shù)調(diào)用
test1
# 獲取上一條指令的返回值,緊接著test1之后就是代表獲取test1函數(shù)的返回值
echo $?
test2




# 輸出結(jié)果
hello world1
0
hello world2

函數(shù)參數(shù)

在Shell中,調(diào)用函數(shù)時可以向其傳遞參數(shù)。在函數(shù)體內(nèi)部,通過 $$

n 的形式來獲取參數(shù)的值,例如,

$1表示第一個參數(shù),$2表示第二個參數(shù),依此類推。`$*`表示所有的參數(shù),`$#`表示參數(shù)的個數(shù) 帶參數(shù)的函數(shù)示例: ``` add() { echo "parmas: $*" echo "params count:$#" return $(($1+$2)) } add 1 2 echo "sum is $?" # 輸出結(jié)果 parmas: 1 2 params count:2 sum is 3 ``` 根據(jù)上面的定義來看shell函數(shù)只能返回整形且為0-255之間,那么我們想返回字符串或者數(shù)組有沒有其他辦法呢? 我們可以通過其他方法來實現(xiàn)類似的效果的,示例代碼如下: **獲取字符串**結(jié)果,調(diào)用的時候通過`$(function_name param)`方式來調(diào)用,那這個函數(shù)里面所有`echo`出來的字符串就會賦值給你的變量,示例如下: ``` hello() { echo "say hello to $1" } result=$(hello world) echo $result # 輸出結(jié)果 say hello to world ``` **獲取數(shù)組** ,這個可以通過定義全局變量,在函數(shù)里面對其賦值 ``` arr=() testArray() { arr[0]=1 arr[1]=2 } testArray echo "arr content is ${arr[*]}" echo "arr size is ${#arr[*]}" # 輸出結(jié)果 arr content is 1 2 arr size is 2 ``` # **2.參考** bash手冊:https://www.gnu.org/software/bash/manual/bash.html Zsh手冊: https://zsh.sourceforge.io/Doc/Release/index.html#Top
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11207

    瀏覽量

    208716
  • 文本編輯器
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    8100
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    515

    瀏覽量

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

    關(guān)注

    0

    文章

    36

    瀏覽量

    7960
收藏 人收藏

    評論

    相關(guān)推薦

    shell腳本進階】幾個常用的shell進階腳本

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

    Shell基礎(chǔ)知識(上)

    shell腳本在日常的Linux系統(tǒng)管理工作中是必不可少的。如果不會寫shell腳本,你就不算是一個合格的管理員。目前,很多單位在招聘Linux系統(tǒng)管理員時,
    發(fā)表于 11-14 09:24 ?509次閱讀

    基礎(chǔ)知識匯總!?。?/a>

    基礎(chǔ)知識匯總!
    發(fā)表于 11-07 18:14

    Shell腳本編程實驗

    指示燈每隔一秒交替閃亮10次按照圖中的腳本一字一句輸入就行了,其中Shell基礎(chǔ)知識一點都不清楚的話多百度下吧,上面有很多相關(guān)知識。這里我就腳本
    發(fā)表于 10-22 18:25

    shell腳本最簡明的教程

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

    Linux中shell腳本執(zhí)的4種方式

    Linux中shell腳本的執(zhí)行通常有4種方式,分別為工作目錄執(zhí)行,絕對路徑執(zhí)行,sh執(zhí)行,shell環(huán)境執(zhí)行。
    發(fā)表于 05-23 09:28 ?899次閱讀
    Linux中<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>執(zhí)的<b class='flag-5'>4</b>種方式

    華為EMC基礎(chǔ)知識匯總資源下載

    華為EMC基礎(chǔ)知識匯總資源下載
    發(fā)表于 06-04 11:10 ?127次下載

    傳感器基礎(chǔ)知識及特性資源匯總下載

    傳感器基礎(chǔ)知識及特性資源匯總下載
    發(fā)表于 07-18 09:36 ?25次下載

    109個實用shell腳本分享

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

    Linux開發(fā)_Makefile規(guī)則與Shell腳本語言

    介紹Linux下Makefile編程知識點,Shell腳本知識點。
    的頭像 發(fā)表于 09-17 15:40 ?1222次閱讀

    shell腳本基礎(chǔ)知識匯總1

    Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執(zhí)行的腳本解釋器就可以了。 Linux 的 Shell 種類眾多,常見的有:
    的頭像 發(fā)表于 02-15 10:48 ?752次閱讀

    shell腳本基礎(chǔ)知識匯總2

    Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執(zhí)行的腳本解釋器就可以了。 Linux 的 Shell 種類眾多,常見的有:
    的頭像 發(fā)表于 02-15 10:48 ?631次閱讀

    shell腳本基礎(chǔ)知識匯總3

    Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執(zhí)行的腳本解釋器就可以了。 Linux 的 Shell 種類眾多,常見的有:
    的頭像 發(fā)表于 02-15 10:49 ?745次閱讀

    shell腳本基礎(chǔ)知識

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

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

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