将变量添加到 bash 数组中的所有项目

Prepending a variable to all items in a bash array

CURRENTFILENAMES=( "$(ls $LOC -AFl | sed "1 d" |  grep "[^/]$" | awk '{ print  }')" )

我已经写了上面的代码,但是它在 for 循环中的表现并不像我预期的那样,我是这样写的

  for a in "$CURRENTFILENAMES"; do
      CURRENTFILEPATHS=( "${LOC}/${a}" )
  done

我希望将变量 LOC 中的值添加到 CURRENTFILENAMES 数组中的所有项目中,但是它只是将其添加到数组的开头,我怎么能解决这个问题?

您需要使用 += 运算符追加到数组中:

CURRENTFILEPATHS+=( "${LOC}/${a}" )

但是不建议解析 ls 输出,请改用 find


编辑: 运行 这个循环的正确方法:

CURRENTFILEPATHS=()
while IFS= read -d '' -r f; do
   CURRENTFILEPATHS+=( "$f" )
done < <(find "$LOC" -maxdepth 1 -type f -print0)