精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

shell腳本基礎知識匯總3

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

1.7 關聯數組

關聯數組定義

Bash 支持關聯數組,可以使用任意的字符串、或者整數作為下標來訪問數組元素。與其他語言中的map是類似的,它是無序的。

關聯數組使用 declare -A命令來聲明,語法格式如下:

declare -A map=(["key1"]="value1" ["key2"]="value2")

索引數組一樣,也支持指定key賦值,示例如下:

declare -A map=(["key1"]="value1" ["key2"]="value2")


declare -A map2
map2["key3"]="value3"


# 獲取指定key的值
echo ${map["key1"]}
# 獲取關聯數組的所有鍵
echo ${!map[*]}


echo ${map[*]}

獲取關聯數組長度

同獲取字符串長度一樣,也是通過${#variable_name}方式獲取,示例如下:

declare -A map=(["key1"]="value1" ["key2"]="value2")
#獲取關聯數組長度
echo ${#map[*]}


# 輸出結果
2

獲取key與value

通過${map[key]}方式獲取指定key的值,通過${map[*]}獲取所有的值,通過${!map[*]}獲取所有的鍵,示例如下:

map=(["key1"]="value1" ["key2"]="value2")
# 獲取指定key的值
echo ${map["key1"]}
echo ${map[*]}
echo ${!map[*]}


# 輸出結果
value1
value2 value1
key2 key1

1.8 流程控制

If else

判斷某個條件成立或者不成立時要執行的動作,中間的elif 和else都是可選,格式如下:

if condition1; then
    command1 
elif condition2; then
    command2
else
    command3
fi

常見的判斷操作符如下:

文件/目錄 -f 文件是否存在
-d 目錄是否存在
-x 文件存在且可執行
-r 文件存在且可讀
-w 文件存在且可寫
字符串 -z 字符串為空
-n 字符串不為空
= 字符串相等
!= 字符串不相等
=~ 字符串包含
數字比較 -eq 相等
-ne 不相等
-lt 小于
-le 小于等于
-gt 大于
-ge 大于等于

if使用示例如下:

# 判斷文件是否存在
if [ -f ~/.bashrc ]; then 
    echo "~/.bashrc exist"
fi
# 判斷字符串是否為空
if [ -z $str ];then
    echo "str is empty"
else
    echo "str is not empty"
fi
# 數字大小判斷
if [ "$var" -eq 1 ];then
    echo "var equal 1"
elif [ "$var" -gt 4 ];then
    echo "var great than 4"
else
    echo "other case"
fi

for 循環

for循環格式如下,item列表值可以分別單獨寫出來,也可以是一個列表

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

代碼示例:

for loop in 1 2 3
do
    echo "The value is: $loop"
done
list=(a b c)
for var in ${list[*]}
do
    echo "var is $var"
done


# 輸出結果
The value is: 1
The value is: 2
The value is: 3
var is a
var is b
var is c

while

while condition
do
    command
done

代碼示例:

a=1
while (( $a<=3 ));do
    echo $a
    let a++
done


# 結合read可以實現常見的按行讀取文件內容
echo "aa" > 1.text
echo "bb" >> 1.txt
while read line;do
    echo $line
done < 1.text


# 輸出結果
1
2
3
aa
bb

case ... esac

為多選擇語句,與其他語言中的 switch ... case 語句類似,是一種多分支選擇結構,每個 case 分支用右圓括號開始, 用兩個分號 ** ;; ** 表示 break ,即執行結束,跳出整個 case ... esac 語句,esac(就是 case 反過來)作為結束標記。

可以用 case 語句匹配一個值與一個模式,如果匹配成功,執行相匹配的命令。

語法格式如下:


casein
模式1)
    command1
    command2
    ;;
模式2)
    command1
    command2
    ;;
esac
echo -n "Enter the name of an animal: "
read ANIMAL
echo -n "The $ANIMAL has "
case $ANIMAL in
  horse | dog | cat) echo -n "four";;
  man | kangaroo ) echo -n "two";;
  *) echo -n "an unknown number of";;
esac
echo " legs."

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11232

    瀏覽量

    208950
  • 文本編輯器
    +關注

    關注

    0

    文章

    28

    瀏覽量

    8103
  • javascript
    +關注

    關注

    0

    文章

    516

    瀏覽量

    53798
  • Shell
    +關注

    關注

    1

    文章

    363

    瀏覽量

    23298
收藏 人收藏

    評論

    相關推薦

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

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

    Shell基礎知識(上)

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

    基礎知識匯總?。。?/a>

    基礎知識匯總
    發表于 11-07 18:14

    Shell腳本編程實驗

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

    shell腳本最簡明的教程

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

    分散控制系統DCS基礎知識匯總文件下載

    分散控制系統DCS基礎知識匯總文件下載
    發表于 04-14 17:10 ?32次下載
    分散控制系統DCS<b class='flag-5'>基礎知識</b><b class='flag-5'>匯總</b>文件下載

    華為EMC基礎知識匯總資源下載

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

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

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

    109個實用shell腳本分享

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

    Linux開發_Makefile規則與Shell腳本語言

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

    shell腳本基礎知識匯總1

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

    shell腳本基礎知識匯總2

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

    shell腳本基礎知識匯總4

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

    shell腳本基礎知識

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

    Linux Shell腳本經典案例分享

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