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

标签 linux unix for-loop

我需要一个使用循环同时使用两个不同变量的命令。

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

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

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

done

最后的结果是

文件输出

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,它们定义了我的主文件“ageecent.txt”中必须分析的列。 感谢您的关注与支持。

最佳答案

我会结合使用 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

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

关于linux - 一次循环两个不同的变量,Linux,unix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39474963/

相关文章:

linux - 为什么我的 mac 终端的 ps -u 不工作?

C++计算时间间隔

c - 退出 FOR 并打印消息的任何想法

bash - 如果没有扩展名为 .c 的文件,则 for 循环包括通配符 (*.c)。我怎么走?

linux - 意外 token 'newline' 附近的语法错误?

linux - nginx定位规则干扰

linux shell全局变量在另一个窗口终端中不可用

unix - grep -f 最大模式数?

Python:是否有类似 C 的 for 循环可用?

linux - 在 bash 中的并行进程之间添加等待