一、數組概述
數組是Shell編程中非常有用的工具,它可以容納多個值,並將它們以一種便於管理和操作的方式組織在一起。數組可以用於存儲和管理文件名、用戶輸入,以及在Shell腳本中的其他數據。
在bash shell中,數組是一組有序的元素,每個元素都可以通過一個索引來引用。數組是通過在變數名稱前面加上一個美元符號($)和花括弧({})來聲明的。
#!/bin/bash
# 定義數組
my_array=(apple orange banana pear lemon)
# 訪問數組的元素
echo ${my_array[0]} # 輸出apple
echo ${my_array[1]} # 輸出orange
# 列印數組中所有的元素
echo ${my_array[@]} # 輸出apple orange banana pear lemon
在上面的例子中,我們聲明了一個名為my_array的數組,並用花括弧來訪問數組中的元素。
二、數組的基本操作
1. 獲取數組元素數量
使用${#array_name[@]}可以獲取數組中元素的數量:
#!/bin/bash
my_array=(apple orange banana pear lemon)
num=${#my_array[@]}
echo $num # 輸出5
2. 向數組中添加元素
可以使用+=運算符向數組中添加元素:
#!/bin/bash
my_array=(apple orange banana pear lemon)
my_array+=(grape)
echo ${my_array[@]} # 輸出apple orange banana pear lemon grape
3. 替換數組中的元素
可以使用變數名和元素索引來替換數組中的元素:
#!/bin/bash
my_array=(apple orange banana pear lemon)
my_array[2]=peach
echo ${my_array[@]} # 輸出apple orange peach pear lemon
4. 刪除數組元素
可以使用unset命令從數組中刪除元素:
#!/bin/bash
my_array=(apple orange banana pear lemon)
unset my_array[2]
echo ${my_array[@]} # 輸出apple orange pear lemon
三、循環遍曆數組
可以使用for循環遍曆數組,例如下面的例子:
#!/bin/bash
my_array=(apple orange banana pear lemon)
for fruit in ${my_array[@]}
do
echo $fruit
done
# 輸出結果:
# apple
# orange
# banana
# pear
# lemon
四、應用案例:批量修改文件名
假設我們有一些文件名後面帶有一些數字後綴,如file1.txt、file2.txt、file3.txt等等。現在我們想將所有文件名中的數字後綴全部刪除。
使用數組可以輕鬆實現這個目標:
#!/bin/bash
files=(file1.txt file2.txt file3.txt)
for file in ${files[@]}
do
new_name=$(echo $file | sed 's/[0-9]*//g')
mv $file $new_name
done
上面的腳本將files數組中所有的文件名循環遍歷一遍,每個文件名中的數字後綴都被刪除,並重新賦予文件名。這段腳本可以讓我們輕鬆地批量修改文件名。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/309890.html