shell编程请教:获取文件名的方法,

shell编程请教:获取文件名的方法,

我现在有一个文件filename包括有多行如下:
/var/test/a1.vec
/var/test/a2.vec
/var/test/a3.vec
.....

我想用basename `grep vec filename`获取到各个文件名称a1.vec, a2.vec......后再分别对其进行下一步操作,可是好像无法在shell中应用数组一类的变量来保存,结果最后只能得到最后一个文件的名称,

请问shell中有类似数组的数据类型吗?或者我该怎么做?
一般而言,A="a b c def" 這樣的變量只是將 $A 替換為一個單一的字串,
但是改為 A=(a b c def) ,則是將 $A 定義為組數...
bash 的組數替換方法可參考如下方法:
${A[@]} 或 ${A
  • } 可得到 a b c def (全部組數)
    ${A[0]} 可得到 a (第一個組數),${A[1]} 則為第二個組數...
    ${#A[@]} 或 ${#A
    • } 可得到 4 (全部組數數量)
      ${#A[0]} 可得到 1 (即第一個組數(a)的長度),${#A[3]} 可得到 3 (第四個組數(def)的長度)
      A[3]=xyz 則是將第四個組數重新定義為 xyz ...
  • 可用 变量$@ 或者$*
    [quote:8a69530cce="zhy2111314"]一般而言,A="a b c def" 這樣的變量只是將 $A 替換為一個單一的字串,
    但是改為 A=(a b c def) ,則是將 $A 定義為組數...
    bash 的組數替換方法可參考如下方法:
    ${A[@]} 或 ${A
  • } 可得到 a b c def (全部組數)
    ${A[0]} 可得到 a (第一個組數),${A[1]} 則為第二個組數...
    ${#A[@]} 或 ${#A
    • } 可得到 4 (全部組數數量)
      ${#A[0]} 可得到 1 (即第一個組數(a)的長度),${#A[3]} 可得到 3 (第四個組數(def)的長度)
      A[3]=xyz 則是將第四個組數重新定義為 xyz ...[/quote]
      zhy2111314说的很详细,不妨向老吴申请下斑竹