成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Bash 初學(xué)者系列 4:在 bash 中使用數(shù)組

系統(tǒng) Linux
如果在 bash 腳本中需要多個變量,該怎么辦?假設(shè)我們要創(chuàng)建一個 bash 腳本,從用戶那里讀取 100 個不同的輸入,那么需要創(chuàng)建 100 個變量嗎?肯定不是這樣,我們需要使用數(shù)組。

在前面的文章中,我們介紹了如何??在 bash 中使用有限數(shù)量的變量???,比如要保存一個或兩個文件名或用戶名。

但是,如果在 bash 腳本中需要多個變量,該怎么辦?假設(shè)我們要創(chuàng)建一個 bash 腳本,從用戶那里讀取 100 個不同的輸入,那么需要創(chuàng)建 100 個變量嗎?

肯定不是這樣,我們需要使用數(shù)組。

在 bash 腳本中創(chuàng)建第一個數(shù)組

假設(shè)我們要創(chuàng)建一個名為 timestamp.sh 的腳本,用來更新 5 個不同文件的時間戳。

第一種使用比較原始的方法,創(chuàng)建 5 個不同的變量,如下所示:

#!/bin/bash
file1="f1.txt"file2="f2.txt"file3="f3.txt"file4="f4.txt"file5="f5.txt"
touch $file1touch $file2touch $file3touch $file4touch $file5

可以看到這種方法寫起來比較繁瑣,我們還可以使用另一種方法,創(chuàng)建一個包含所有文件名的數(shù)組,如下語法:

array_name=(value1 value2 value3 … )

這種比較簡潔,所以我們采用數(shù)組的方法,如下:

files=("f1.txt" "f2.txt" "f3.txt" "f4.txt" "f5.txt")

訪問bash中的數(shù)組元素

與大多數(shù)編程語言中一樣,數(shù)組中的元素索引是從 0 開始的,所以要訪問數(shù)組中第 n 個元素,其下標(biāo)索引應(yīng)該是 [n - 1]

比如,要打印數(shù)組中的第 2 個元素,可以參考如下方式:

echo ${files[1]}

以下 bash 腳本 reverse.sh,將倒序打印數(shù)組中的 5 個元素:

#!/bin/bash
files=("f1.txt" "f2.txt" "f3.txt" "f4.txt" "f5.txt")
echo ${files[4]}echo ${files[3]}echo ${files[2]}echo ${files[1]}echo ${files[0]}

圖片?

使用過 bash 的朋友可能會覺得奇怪,為什么我這里用這么多 echo 命令,而不是使用循環(huán)。我是想稍后在介紹 bash 中循環(huán)的使用。

也可以一次打印出所有數(shù)組元素:?

echo ${files[*]}
f1.txt f2.txt f3.txt f4.txt f5.txt

可以打印數(shù)組元素的總數(shù),也就是數(shù)組的大小:?

echo ${#files[@]}
5

數(shù)組中元素的值是可以更改的。比如,我們可以用如下方式將數(shù)組中第一個元素的值改為 a.txt:

files[0]="a.txt"

向數(shù)組中添加元素

我們首先創(chuàng)建一個包含 Linux 版本名稱的數(shù)組:

distros=("Ubuntu" "Red Hat" "Fedora")

上述數(shù)組中包含三個元素。可以使用 += 運算符將元素添加(追加)到數(shù)組的末尾,如下所示:

distros+=("Kali")

現(xiàn)在,數(shù)組中已經(jīng)有了 4 個元素,Kali 是最后一個:

圖片

刪除數(shù)組中的元素

我們首先創(chuàng)建一個包含 5 個數(shù)字的數(shù)組,其名稱為 num:

num=(1 2 3 4 5)

可以打印一下數(shù)組中的元素:?

echo ${num[*]}
1 2 3 4 5

我們可以使用 shell 內(nèi)置功能 unset 來刪除 數(shù)組中的第 3 個元素:

unset

現(xiàn)在,我們再來打印一下 num 數(shù)組中的元素:

echo ${num[*]}1 2 4 5

上面結(jié)果可以看到,第三個元素已經(jīng)被刪除。

也可以使用同樣的方法刪除數(shù)組中所有的元素:

unset

圖片

創(chuàng)建具有不同數(shù)據(jù)類型的混合數(shù)組

與其他編程語言不同,在 bash 中,可以創(chuàng)建包含不同數(shù)據(jù)類型的數(shù)組,如下 user.sh 所示:?

#!/bin/bash
user=("john" 122 "sudo,developers" "bash")
echo "User Name: ${user[0]}"echo "User ID: ${user[1]}"echo "User Groups: ${user[2]}"echo "User Shell: ${user[3]}"

上述腳本中的數(shù)組包含有四個元素,其中第二個元素為整型數(shù)據(jù)類型,其余三個元素為字符串。

圖片

以上就是本次分享全部內(nèi)容,歡迎討論。

責(zé)任編輯:龐桂玉 來源: TIAP
相關(guān)推薦

2022-12-14 10:08:00

BashLinux

2022-12-13 12:55:15

Bash循環(huán)

2022-12-16 09:01:24

2022-12-01 08:10:49

Bash腳本參數(shù)

2022-12-07 07:43:21

2022-12-09 07:58:52

Bash條件語句

2022-11-30 07:47:00

Bash腳本

2022-12-08 12:05:03

Bash字符串

2023-07-20 15:37:50

Bash數(shù)組

2022-11-28 08:01:47

BashLinuxshell 腳本

2023-07-12 14:13:03

BashLinux

2020-10-13 19:04:58

Bash信號捕獲Shell腳本

2019-04-22 14:39:05

BashLinux命令

2019-04-15 11:10:34

Bash方括號命令行

2011-06-17 14:54:31

Qt

2022-01-16 07:48:33

腳本Bash 工具

2023-01-13 12:37:43

Bashshell花括號

2012-03-14 10:56:23

web app

2011-04-12 10:13:24

2011-09-16 09:38:19

Emacs
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 2019天天操 | 日韩一级电影免费观看 | 日韩高清中文字幕 | 欧美在线观看网站 | 久久一二区| 免费一级片| 欧美综合久久 | aaaaaaa片毛片免费观看 | 亚洲精品在线播放 | 91素人 | 精品成人av | 国产乱肥老妇国产一区二 | 久久久久国产一区二区三区 | 北条麻妃视频在线观看 | 精品日韩 | 久久精品在线免费视频 | 天天看天天爽 | 亚洲伊人久久综合 | 日韩高清成人 | 在线婷婷 | 天天色天天色 | 影音先锋中文在线 | 999www视频免费观看 | 中文字幕精品一区久久久久 | 亚洲一区中文字幕在线观看 | 久色视频在线观看 | 91精品国产日韩91久久久久久 | 久草.com| 国产区视频在线观看 | 日韩欧美三级 | 在线观看中文字幕一区二区 | 国产日韩欧美在线观看 | 国产一区二区三区在线免费观看 | 久久久成人一区二区免费影院 | 欧美一区二区免费电影 | 欧美日韩在线视频一区二区 | 激情网站在线观看 | 精品国模一区二区三区欧美 | av免费网址 | 一区二区三区av夏目彩春 | av免费网站在线观看 |