我正在尝试迭代目录中的文件。该目录包含文件
{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
答案 0 :(得分:3)
在打印时引用变量以避免文件名用于文件名中的*
:
for PATH in *; do
echo "$PATH"
echo "hello"
done
PATH
可能不是正确的变量名称,因为您将松开shell的PATH
。