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

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

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

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

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

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

在 bash 腳本中創(chuàng)建第一個數(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 個元素,其下標索引應該是 [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)容,歡迎討論。

責任編輯:龐桂玉 來源: TIAP
相關推薦

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

2019-04-22 14:39:05

BashLinux命令

2019-04-15 11:10:34

Bash方括號命令行

2020-10-13 19:04:58

Bash信號捕獲Shell腳本

2011-06-17 14:54:31

Qt

2023-01-13 12:37:43

Bashshell花括號

2022-01-16 07:48:33

腳本Bash 工具

2012-03-14 10:56:23

web app

2009-11-13 15:46:25

Java多線程

2011-09-16 09:38:19

Emacs
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: aaa在线观看 | 99精品视频在线观看 | 久久精品色欧美aⅴ一区二区 | www亚洲精品| 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 国产精品久久久久久久久久免费看 | 国产在线一区二区三区 | 久久99精品视频 | av网站在线看 | 国产精品免费av | 日韩在线视频一区 | 韩日一区二区 | 午夜精品久久久久久久久久久久 | 亚洲在线一区 | 久久精品 | 中文字幕国产在线 | 日本不卡在线观看 | 爱综合 | 成人免费视频 | 久草久 | 国产成人精品久久二区二区91 | 亚洲有码转帖 | 国产综合在线视频 | 久久精品国产a三级三级三级 | 午夜影院在线观看视频 | 日本福利片| 国产在线一区二区三区 | 色频| 国产在线精品一区二区三区 | 欧美一区不卡 | 成人av资源在线 | 北条麻妃99精品青青久久主播 | 精产嫩模国品一二三区 | 国产精品久久久久久久久久久久冷 | 黄色一级在线播放 | 午夜精品久久久久久久久久久久 | 天天操夜夜操 | 久久综合99| 日韩精品一区二区三区中文在线 | 九九热这里只有精品在线观看 | 二区av |