for循环迭代目录中的文件 - 跳过文件

时间:2015-06-28 10:17:53

标签: bash for-loop

我正在尝试迭代目录中的文件。该目录包含文件

{3-23*01.fastq, 3-23D*01.fastq,3-23*02.fastq,3-23*03.fastq,3-23*04.fastq,3-23D*01.fastq,3-30*01.fastq 3-30-3*01.fastq,3-30*02.fastq,3-30-3*02.fastq,3-30*03.fastq,3-30-3*03.fastq}

出于某种原因,当我迭代文件时,就像我在下面的for循环中那样,它会跳过一些文件?或者认为两个文件实际上是一个?我不确定发生了什么。

for PATH_TO_FILE in *; do
echo $PATH_TO_FILE
echo "hello"
done

输出:

3-23*01.fastq 3-23D*01.fastq
hello
3-23*02.fastq
hello
3-23*03.fastq
hello
3-23*04.fastq
hello
3-23D*01.fastq
hello
3-30*01.fastq 3-30-3*01.fastq
hello
3-30*02.fastq 3-30-3*02.fastq
hello
3-30*03.fastq 3-30-3*03.fastq

1 个答案:

答案 0 :(得分:3)

在打印时引用变量以避免文件名用于文件名中的*

for PATH in *; do
  echo "$PATH"
  echo "hello"
done

PATH可能不是正确的变量名称,因为您将松开shell的PATH