一次循环两个不同的变量,Linux,unix

时间:2016-09-13 16:34:54

标签: linux unix for-loop

我需要一个使用循环的命令,以便在时间使用两个不同的变量。

遵循这个逻辑:(这个命令不起作用,只是一个例子):

for t1&t2 in 62&64  64&68 70&80; do 

echo "Horse $t1 and $t2" >> File.out 

done

,最终结果将是

File.out

Horse 62 and 64  
Horse 64 and 68  
Horse 70 and 80

我想使用它,更具体地说,使用这样的R程序:

for t1&t2 in 62&64  64&68 70&80; do

 R -q -e "library(pastecs);d <- read.table('ageecent.txt', header = F,sep=' ');
vart1 =var(d[,$t1]); vres_t1=vart1*0.75; 
va_t1=(vart1*0.25);vart2=var(d[,$t2]); vres_t2=vart2*0.75; 
va_t2=(vart2*0.25); cor=cor(d[,$t1],d[,$t2]); 
write.table(va_t1,'va_t1', row.names=F, col.names=F);
write.table(vres_t1,'vres_t1',row.names=F,col.names=F);
write.table(va_t2,'va_t2',row.names=F,col.names=F);
write.table(vres_t2,'vres_t2',row.names=F,col.names=F);
write.table(cor,'cor',row.names=F,col.names=F)"

done

我需要在哪里使用两个不同的变量t1和t2来定义我的主文件&#34; ageecent.txt&#34;的列,必须进行分析。 感谢您的关注和支持。

1 个答案:

答案 0 :(得分:1)

我会将while循环与read结合使用,而不是for循环:

echo -e '62 64\n64 68\n70 80' |
    while read -r t1 t2; do
        echo "Horse $t1 and $t2"
    done >> File.out

请注意,我还将重定向移出循环,这样效率更高。