shell 數組操做

不像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
相關文章
相關標籤/搜索