日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Bash 数组示例

發布時間:2025/3/20 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bash 数组示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文 http://www.thegeekstuff.com/2...

1 數組聲明

像下面 會自動創建 name 數組,不用聲明

name[index]=value

例如

$ cat arraymanip.sh #! /bin/bash Unix[0]='Debian' Unix[1]='Red hat' Unix[2]='Ubuntu' Unix[3]='Suse'echo ${Unix[1]}$./arraymanip.sh Red hat

通過索引訪問元素 ${name[index]}

2 聲明時初始化數組

語法

Syntax: declare -a arrayname=(element1 element2 element3)

元素使用空格分隔

#! /bin/bash $cat arraymanip.sh declare -a Unix=('Debian' 'Red hat' 'Red hat' 'Suse' 'Fedora');

3 打印整個數組

如果索引是 @ 或 * 表示整個數組

echo ${Unix[@]}# Add the above echo statement into the arraymanip.sh #./t.sh Debian Red hat Ubuntu Suse

4 獲取數組長度

語法

${#arrayname[@]}

$ cat arraymanip.sh declare -a Unix=('Debian' 'Red hat' 'Suse' 'Fedora'); echo ${#Unix[@]} # 數組長度 echo ${#Unix} # 這個是獲取數組第一個元素字符數量 .i.e Debian $./arraymanip.sh 4 6

5 數組中第n個元素長度

${#arrayname[n]}

$cat arraymanip.sh #! /bin/bashUnix[0]='Debian' Unix[1]='Red hat' Unix[2]='Ubuntu' Unix[3]='Suse'echo ${#Unix[3]} # length of the element located at index 3 i.e Suse$./arraymanip.sh 4

6 通過數組的偏移量和長度來提取子數組

下面的例子從數組Unix 位置3開始,提取2個元素, 索引從0開始

$cat arraymanip.sh Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); echo ${Unix[@]:3:2}$./arraymanip.sh Suse Fedora

7 根據偏移和長度獲取數組元素的一部分

例如,位于數組的第二個索引的Ubuntu 獲取基 第0個到第4個字符

$cat arraymanip.sh #! /bin/bashUnix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); echo ${Unix[2]:0:4}./arraymanip.sh Ubun

上述示例從數組的第二個索引元素中提取前四個字符

8 搜索 替換 數組中元素

下面的代碼 搜索 Ubuntu 然后 替換成 SCO Unix

$cat arraymanip.sh #!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux');echo ${Unix[@]/Ubuntu/SCO Unix} echo ${Unix[@]}$./arraymanip.sh Debian Red hat SCO Unix Suse Fedora UTS OpenLinux Debian Red hat Ubuntu Suse Fedora UTS OpenLinux

在這個例子中, 它用“SCO Unix”替換了第二個索引“Ubuntu”中的元素, 但是這個例子不會改變原來數組

9 向數組中添加元素

向數組Unix中添加 AIX HP-UX

$cat arraymanip.sh Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); Unix=("${Unix[@]}" "AIX" "HP-UX") echo ${Unix[7]}$./arraymanip.sh AIX

10 在從數組刪除元素

使用 unset 刪除索引3的Suse

$cat arraymanip.sh #!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux');unset Unix[3] echo ${Unix[3]}

上面的例子打印索引3的值為空,并不是我們想要的結果, 下面的例子完整的移除一個元素

$ cat arraymanip.sh Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); pos=3 Unix=(${Unix[@]:0:$pos} ${Unix[@]:$(($pos + 1))}) echo ${Unix[@]}$./arraymanip.sh Debian Red hat Ubuntu Fedora UTS OpenLinux

上面的代碼中 ${Unix[@]:0:$pos} 表示 從索引0到pos的子數組 ${Unix[@]:4} 表示從索引4到最后一個元素的子數組
然后 把兩個子數組合并成一個數組

11 通過模式刪除數組元素

在搜索條件下,您可以給出模式,并將剩余元素存儲到另一個數組,比如

$ cat arraymanip.sh #!/bin/bash declare -a Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora'); declare -a patter=( ${Unix[@]/Red*/} ) echo ${patter[@]}$ ./arraymanip.sh Debian Ubuntu Suse Fedora

上述示例刪除了具有模式Red* 的元素

12 復制一個數組

展開數組元素并將其存儲到新的數組中

#!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); Linux=("${Unix[@]}") echo ${Linux[@]}$ ./arraymanip.sh Debian Red hat Ubuntu Fedora UTS OpenLinux

13 合并兩個數組

展開兩個數組的元素并將其分配給新數組

$cat arraymanip.sh #!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); Shell=('bash' 'csh' 'jsh' 'rsh' 'ksh' 'rc' 'tcsh');UnixShell=("${Unix[@]}" "${Shell[@]}") echo ${UnixShell[@]} echo ${#UnixShell[@]}$ ./arraymanip.sh Debian Red hat Ubuntu Suse Fedora UTS OpenLinux bash csh jsh rsh ksh rc tcsh 14

14 刪除整個數組

使用 unset 命令

$cat arraymanip.sh #!/bin/bash Unix=('Debian' 'Red hat' 'Ubuntu' 'Suse' 'Fedora' 'UTS' 'OpenLinux'); Shell=('bash' 'csh' 'jsh' 'rsh' 'ksh' 'rc' 'tcsh');UnixShell=("${Unix[@]}" "${Shell[@]}") unset UnixShell echo ${#UnixShell[@]}$ ./arraymanip.sh 0

15 從文件加載數組

讀取文件每一行,一行作為數組中的一個元素

#Example file $ cat logfile Welcome to thegeekstuff Linux Unix$ cat loadcontent.sh #!/bin/bash filecontent=( `cat "logfile" `)for t in "${filecontent[@]}" doecho $t done echo "Read file content!"$ ./loadcontent.sh Welcome to thegeekstuff Linux Unix Read file content! 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Bash 数组示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜免费看 | 国产激情一区二区三区四区 | 日本国产一区二区三区 | 亚洲国产日韩欧美一区二区三区 | 欧洲做受高潮欧美裸体艺术 | 黄色成人在线播放 | 国产精品天天看 | 强迫凌虐淫辱の牝奴在线观看 | 久久这里只有精品6 | va在线播放 | 人妖黄色片 | 自拍偷拍20p | 福利一区在线观看 | 精品人妻一区二区三区免费看 | 日韩av在线一区 | 欧美xxxxx高潮喷水麻豆 | 麻豆影视国产在线观看 | 成人动漫一区二区三区 | 国产原创中文av | 国产熟女一区二区 | 毛片一级免费 | 日韩国产在线播放 | 国产福利视频导航 | 91免费网站 | 日韩高清精品免费观看 | 伊人久久精品视频 | 一本大道久久精品 | 污污的视频网站在线观看 | 亚洲伊人久久久 | www.com黄色| 人人妻人人爽人人澡人人精品 | 成人在线观看国产 | 成人免费版 | 最新中文字幕久久 | 精品九九九九 | 欧美色成人 | 国产另类专区 | 无码乱人伦一区二区亚洲 | 久久99精品久久久久久水蜜桃 | avtt亚洲天堂 | wwwxxx在线播放 | 中文字幕精品一区二区精 | 日韩三级久久 | 一级黄色aa| 欧美亚洲在线视频 | 黄a视频| 日本美女日批视频 | 亚洲性xxx| a∨视频| 天堂新版8中文在线8 | 相亲对象是问题学生在线观看 | 小sao货cao死你 | 日本黄视频网站 | 天堂v在线观看 | 日日摸日日碰 | 伊人激情综合网 | 91网站免费入口 | 五月综合激情日本mⅴ | 想要xx视频 | 日韩有码中文字幕在线 | 中文字幕精品一区 | 理论片午午伦夜理片影院99 | 与亲女洗澡时伦了毛片 | 黄色片视频播放 | av超碰在线观看 | 欧美一区二区在线观看 | 人人人妻人人澡人人爽欧美一区 | 久久九色 | 亚洲精品乱码久久久久久黑人 | wwwwww在线观看 | 污网站免费在线 | 欧美乱轮| 久久久久亚洲av无码专区桃色 | 91在线无精精品入口 | 秘密基地电影免费版观看国语 | 青青草原在线免费观看视频 | 色婷婷综合久久久久中文 | 久久99精品久久久久久噜噜 | 四虎午夜影院 | 全国男人天堂网 | 亚洲综合av一区二区 | 欧美日韩性视频 | 久久精品欧美视频 | 毛片无码一区二区三区a片视频 | 亚洲无限码 | 久久久久久久久久久久久国产 | 在线播放www | 琪琪久久 | 精品产国自在拍 | 国产女人高潮时对白 | 亚洲国产成人精品女人久久久 | 国产伦理在线 | 成人欧美一区二区三区黑人冫 | 亚洲综合少妇 | 亚洲激情欧美色图 | 69人妻一区二区三区 | 亚洲天堂2021av | 欧美人妖老妇 | 久久中文字幕人妻 |