不像Python那樣方便,須要先定義一個變量,用來當數組下標;以下:c++
c=0 for file in `ls $dir` do filelist[$c]=$file ((c++)) done
若是想讀取數組內容,能夠使用for循環:docker
for image_name in ${filelist[@]} do if [[ ${image_name} =~ 'tar' ]] then docker load < $image_name fi done
$* 與 $@ 區別:數組
不一樣點:只有在雙引號中體現出來。假設在腳本運行時寫了三個參數 一、二、3,,則 " * " 等價於 "1 2 3"(傳遞了一個參數),而 "@" 等價於 "1" "2" "3"(傳遞了三個參數)。bash
#!/bin/bash
# author:菜鳥教程
# url:www.runoob.comurl
echo "-- $* 演示 ---"
for i in "$*"; do
echo $i
donecode
echo "-- $@ 演示 ---"
for i in "$@"; do
echo $i
done教程
執行腳本,輸出結果以下所示:for循環
$ chmod +x test.sh $ ./test.sh 1 2 3 -- $* 演示 --- 1 2 3 -- $@ 演示 --- 1 2 3