【发布时间】:2019-02-05 19:27:26
【问题描述】:
我在使用 for 循环对文件进行交互时遇到了问题。为简单起见,我创建了一个小循环来解释我目前遇到的问题。
起点:文件夹中的文件在其文件名的定义位置具有文件特定的一到三位数字。
目标:使用 for 循环遍历其中一些文件(不是全部)。
问题:我创建了一个数组,其中包含每个文件特定的一到三位数字。这些文件在 for 循环的开头被调用,我想使用数组来引用特定文件。但是:数组没有正确扩展。
希望有人可以提供帮助! (可能有几种很好的替代方法可以做到这一点。也许其中一些不需要数组,但我有兴趣了解我的具体问题的解决方案,因为我认为这可能是对如何扩展变量的根本误解作为 for 循环开头的文件名的一部分。)
这是代码:
declare -a SOME_SAMPLES=(37 132 253 642 242 42)
for d in prmrp_*_${SOME_SAMPLES[@]}_S*_L00?_R1_001.fastq.gz; do
INPUT_FILE1=$(echo $d | sed 's/_L00._R1_001.fastq.gz//')
echo ${INPUT_FILE1}
done
同样,这只是一个示例代码。问题是 ${SOME_SAMPLES[@]} 部分未正确扩展,因此循环失败。
谢谢!
【问题讨论】: