我有一个bash循环,下面使用perl脚本。希望为每个要保存为单独文本文件的$i
中的每个$f
输出一些内容。我下面的代码可以完成这项工作,但不是将其保存为单个$i
,而是将其保存为$f
并将18 to 24
的输出放入一个文件中。可能是我必须在此循环中重新放置写命令,还是有更好的方法呢?
for f in *.fastq; do
echo "Processing: " $f
for i in $(seq 18 24); do
echo "Doing: " $i
perl /home/owner/perl/count.pl $f $i
done > >(tee /media/owner/${f}_${i}.txt) 2>&1
done
答案 0 :(得分:1)
循环重定向是按循环而不是按迭代进行的。
您可以改为在所需的命令周围使用{ command group; }
并将其重定向:
for f in *.fastq;
do
echo "Processing: " $f
for i in $(seq 18 24);
do
{
echo "Doing: " $i
perl /home/owner/perl/count.pl $f $i
} > >(tee /media/owner/${f}_${i}.txt) 2>&1
done
done