校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Shell數組添加元素及注意事項

Shell數組添加元素及注意事項

熱門標簽:黑暗之魂3地圖標注 電話機器人對家居行業幫助大嗎 AI智能電銷機器人壞處 沈陽ai電銷智能機器人 蘭州電銷機器人加盟 電商外呼系統排名 如何申請400的電話呀 地圖標注審核周期 合肥電銷外呼系統供應商

向Shell數組添加元素有多種方法,每種方法在使用時都有一些需要注意的地方,沒有見過這方面的總結資料,所以自己總結一下。

直接下標添加

array_name[index]=value

最簡單的添加方式,直接用下標index為數組元素賦值,在使用時需要注意的是就是需要確保下標index處原本是沒有值的,否則會替換index處原本的值。

數組長度添加

array_name[${#array_name[@]}]=value
#或array_name[${#array_name[*]}]=value

以數組長度為下標添加,每次只能增加一個元素。但此方法有一個前提,就是數組中的元素下標必須是連續的,否則會存在替換已有元素的風險。例如:

arr=([1]="a" [2]="b")
echo ${arr[@]}
arr[${#arr[@]}]="c"
echo ${arr[@]}

實際上并有添加元素,而是將下標為2的元素值“b”替換為了“c”。

重新創建數組

array_name=("${array_name[@]}" value1 ... valueN)

 這種方式不需要下標連續,可同時添加多個元素,但是有一些要注意的地方:

首先,使用此方式添加元素后,數組中原有元素的下標會重置,會從0開始變成連續的,如果不希望改變下標則不能使用這種方式。

其次,雙引號不能省略,否則,當數組array_name中存在包含空格的元素時會按空格將元素拆分成多個。

最后,不能將“@”替換為“*”,雖然在輸出數組元素時可以相互替換,如果替換為“*”,不加雙引號時與“@”的表現一致,加雙引號時,會將數組array_name中的所有元素作為一個元素添加到數組中。類似于特殊變量$@和$*的區別。

#!/bin/bash
arr1=()
initArray(){
  arr1=([2]="a b" [3]=2 [5]=4)
}
showArray(){
  echo "Elements in arr1: ${arr1[@]}"
  echo "Length of arr1: ${#arr1[@]}"
  echo "The 3rd elements is: ${arr1[2]}"
  echo
}
initArray
echo "original arr1:"
showArray
echo "add new elements 3 and 5"
echo "--------------------"
echo "use @ without quote"
arr1=(${arr1[@]} 3 5)
showArray
initArray
echo "use * without quote"
arr1=(${arr1[*]} 3 5)
showArray
initArray
echo "use @ with quote"
arr1=("${arr1[@]}" 3 5)
showArray
initArray
echo "use * with quote"
arr1=("${arr1[*]}" 3 5)
showArray

運行結果為:

original arr1:
Elements in arr1: a b 2 4
Length of arr1: 3
The 3rd elements is: a b
 
add new elements 3 and 5
--------------------
use @ without quote
Elements in arr1: a b 2 4 3 5
Length of arr1: 6
The 3rd elements is: 2
 
use * without quote
Elements in arr1: a b 2 4 3 5
Length of arr1: 6
The 3rd elements is: 2
 
use @ with quote
Elements in arr1: a b 2 4 3 5
Length of arr1: 5
The 3rd elements is: 4
 
use * with quote
Elements in arr1: a b 2 4 3 5
Length of arr1: 3
The 3rd elements is: 5

賦值運算符+=

array_name+=(value1 ... valueN)

 這種方式不需要元素下標連續,可以添加多個元素,添加后元素下標不會重置,不存在元素覆蓋的風險。唯一要注意的就是“+=”前后不能有空格,并且后面的待添加元素必須用“()”包圍起來,并且多個元素用空格分隔。新添加的元素的下標取決于原本數組中最后有值的元素的下標。

#!/bin/bash
arr1=()
initArray(){
  arr1=([2]="a b" [3]=2 [5]=4)
}
showArray(){
  echo "Elements in arr1: ${arr1[@]}"
  echo "Length of arr1: ${#arr1[@]}"
  echo "The 3rd elements is: ${arr1[2]}"
  echo
}
initArray
echo "original arr1:"
showArray
echo "add new elements 3 and 5"
echo "--------------------"
echo "use += "
arr1+=(3 5)
showArray
echo "The 8th elements is: ${arr1[7]}"

運行結果為:

original arr1:
Elements in arr1: a b 2 4
Length of arr1: 3
The 3rd elements is: a b
 
add new elements 3 and 5
--------------------
use +=
Elements in arr1: a b 2 4 3 5
Length of arr1: 5
The 3rd elements is: a b
 
The 8th elements is: 5

數組中原本的元素沒有改變,新添加的元素下標是在最后有值的元素下標5的基礎上遞增的。

總結

添加方式 語法

可添加多個元素

下標必須連續 添加后下標改變 可能覆蓋原有元素
直接下標添加 array_name[index]=value
數組長度添加

array_name[${#array_name[@]}]=value

或array_name[${#array_name[*]}]=value

重新創建數組 array_name=("${array_name[@]}" value1 ... valueN)
賦值運算符+= array_name+=(value1 ... valueN)

到此這篇關于Shell數組添加元素及注意事項的文章就介紹到這了,更多相關Shell數組添加元素內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • PowerShell中使用ArrayList實現數組插入、刪除、添加例子
  • Shell腳本數組操作小結
  • Shell腳本數組用法小結
  • shell for循環與數組應用介紹
  • shell 使用數組作為函數參數的方法(詳解)
  • shell腳本字符串和數組的使用操作方法
  • Linux Shell 數組的創建及使用技巧
  • shell數組操作簡明總結

標簽:黔南 常州 河池 河北 通遼 隴南 淮南 黔南

巨人網絡通訊聲明:本文標題《Shell數組添加元素及注意事項》,本文關鍵詞  Shell,數組,添加,元素,及,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell數組添加元素及注意事項》相關的同類信息!
  • 本頁收集關于Shell數組添加元素及注意事項的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国内精品伊人久久久久av影院| 亚洲一二三专区| 精品乱人伦小说| 91丨九色丨蝌蚪富婆spa| 国产精品一区二区在线看| 日韩电影免费在线看| 亚洲午夜久久久久中文字幕久| 久久精品一区蜜桃臀影院| 日韩三级免费观看| 97精品国产97久久久久久久久久久久| 欧美aaaaa成人免费观看视频| 亚洲日本va午夜在线电影| 中文av字幕一区| 26uuu另类欧美| 日韩一级免费观看| 欧美日韩精品一区二区三区 | 亚洲视频狠狠干| 18成人在线视频| 国产精品电影院| 一区二区三区久久| 日韩中文字幕麻豆| 麻豆91小视频| 国v精品久久久网| av亚洲精华国产精华精华| 99re66热这里只有精品3直播| 色婷婷综合中文久久一本| 欧美三级三级三级爽爽爽| 制服丝袜亚洲网站| 欧美精品一区男女天堂| 国产精品卡一卡二卡三| 亚洲精品一二三| 麻豆国产精品官网| 91小视频在线| 欧美一区二区三区在线| 国产女主播在线一区二区| 亚洲同性同志一二三专区| 日本v片在线高清不卡在线观看| 国内精品国产成人国产三级粉色| 精品视频1区2区3区| 欧美一区二区三区视频免费播放| 久久品道一品道久久精品| 亚洲欧美视频在线观看视频| 麻豆精品一二三| 91丨porny丨在线| 精品国产伦一区二区三区免费| 国产精品久久久久aaaa| 狂野欧美性猛交blacked| av不卡一区二区三区| 久久免费午夜影院| 婷婷国产在线综合| 色先锋aa成人| 日韩美女视频一区二区| 国产一区二区三区精品视频| 欧美一区二区在线视频| 一区二区三区欧美激情| 99久久亚洲一区二区三区青草| 久久一二三国产| 捆绑调教美女网站视频一区| 欧美日本在线看| 视频精品一区二区| 欧美人xxxx| 日韩电影一区二区三区四区| 欧美三级日本三级少妇99| 一级中文字幕一区二区| 色噜噜久久综合| 亚洲国产一区二区三区| 欧美三片在线视频观看| 五月综合激情婷婷六月色窝| 宅男噜噜噜66一区二区66| 日韩高清国产一区在线| 日韩一区二区在线观看| 精品一区二区三区av| 国产精品丝袜黑色高跟| 国产电影一区二区三区| 亚洲三级免费电影| 欧美日韩精品三区| 精品在线观看免费| 久久蜜桃一区二区| 99久久精品免费看| 免费观看久久久4p| 国产精品亲子乱子伦xxxx裸| 成人禁用看黄a在线| 亚洲综合免费观看高清在线观看| 91精品久久久久久久99蜜桃 | 另类欧美日韩国产在线| 欧美高清在线精品一区| 欧美日韩一区二区在线观看| 国产一区二三区好的| 亚洲精品老司机| 日韩久久久精品| 成人av第一页| 奇米777欧美一区二区| 中文字幕亚洲在| 久久综合狠狠综合久久激情 | 欧美日韩免费电影| 成人性视频免费网站| 午夜精品久久久久影视| 国产精品久久久久天堂| 91精品国产综合久久香蕉的特点 | 国产精品午夜免费| 日韩免费高清av| 欧美日韩国产影片| 99久久精品一区二区| 精品无码三级在线观看视频 | 欧美日韩亚洲综合| 91亚洲精品久久久蜜桃| 国产一区亚洲一区| 精彩视频一区二区| 国产一区二区在线视频| 男女激情视频一区| 蜜桃精品视频在线观看| 日本免费新一区视频| 亚洲一区二三区| 亚洲精品午夜久久久| 国产精品对白交换视频| 国产精品成人网| 中文字幕日本不卡| 亚洲女同ⅹxx女同tv| 136国产福利精品导航| 成人欧美一区二区三区| 亚洲欧美视频在线观看| 亚洲欧美电影一区二区| 亚洲精品中文在线| 尤物视频一区二区| 午夜精品一区二区三区电影天堂 | 99视频精品在线| 91色porny在线视频| 欧美亚洲另类激情小说| 日韩精品在线一区二区| 国产精品久久久久久久久动漫| 亚洲欧美日韩人成在线播放| 亚洲愉拍自拍另类高清精品| 蜜桃一区二区三区四区| 国产成人免费在线| 欧美色图第一页| 精品99999| 亚洲一区在线观看视频| 久久99精品久久久久婷婷| 成人午夜短视频| 9191国产精品| 亚洲日本丝袜连裤袜办公室| 亚洲成人av中文| 成人黄色综合网站| 欧美二区三区的天堂| 久久久久久久性| 日韩av一区二| 91久久精品国产91性色tv| 久久香蕉国产线看观看99| 亚洲国产精品欧美一二99| 成人在线视频一区二区| 91精品国产色综合久久久蜜香臀| 中文字幕不卡一区| 久久综合综合久久综合| 在线观看网站黄不卡| 久久久久久久久岛国免费| 日韩国产一二三区| 在线观看视频91| 亚洲日本护士毛茸茸| 国产一区二区三区四区五区入口 | 国产精品短视频| 国产在线视视频有精品| 欧美大胆人体bbbb| 日韩电影在线观看电影| 欧美三级日本三级少妇99| 一区二区高清在线| 91九色最新地址| 亚洲一二三专区| 欧美日韩精品三区| 午夜视频一区在线观看| 678五月天丁香亚洲综合网| 性欧美大战久久久久久久久| 欧洲国内综合视频| 五月婷婷激情综合网| 欧美一区二区三区四区五区| 美女看a上一区| 欧美成人精品福利| 激情国产一区二区| 日本一二三不卡| 一本色道亚洲精品aⅴ| 有码一区二区三区| 91麻豆精品久久久久蜜臀| 麻豆精品视频在线观看视频| 精品国产一区久久| 成人自拍视频在线| 亚洲香肠在线观看| 91精品欧美一区二区三区综合在| 黄色成人免费在线| 夜夜亚洲天天久久| 日韩视频一区二区三区| 国产成人a级片| 亚洲一区在线看| 久久久久久久久一| 一本到不卡免费一区二区| 久久国产福利国产秒拍| 一区免费观看视频| 欧美一级高清大全免费观看| 成人午夜碰碰视频| 五月综合激情日本mⅴ| 国产欧美精品一区| 欧美日本视频在线|