繁体   English   中英

bash通过两个目录循环

[英]bash loop through two Directories

我尝试遍历两个目录,并使用此脚本回显具有给定扩展名的所有文件:

#!/bin/bash
FOLDERS=/sdd/DATA/ /sdc/storage/
for d in $FOLDERS; do
echo "$d"
  FILES=$d*.txt
  for f in $FILES; do
    echo "$f"
  done
done

但我无法使该脚本正常工作! 我得到bash:sdc / storage /是一个目录

正确执行此操作看起来像:

#!/bin/bash
folders=( /sdd/DATA/ /sdc/storage/ )
for d in "${folders[@]}"; do
  echo "$d"
  files=( "$d"*.txt )
  printf '%s\n' "${files[@]}" # print the files array, one per line
done

注意:

  • array=( "first item" "second item" )定义了一个两个项目的数组; "${array[@]}"扩展为这些项目。
  • 扩展元素时,我们希望引用的部分不应为shell字符串拆分或glob-expand,而应保留所有glob模式不加引号; 因此是"$d"*.txt
  • 我们将小写名称用于用户定义的变量。 这是根据POSIX定义的建议 ,该建议指定全大写字母名称,用于对操作系统和外壳有意义的变量,而所有其他名称保留供应用程序使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM