我需要一个使用所有变量的命令,一次两个以所有可能的组合
遵循这个逻辑:(这个命令不起作用,它只是一个例子):
finish()
,最终结果将是
File.out
for t1&t2 in 62 63 64 65; do
echo "Horse $t1 and $t2" >> File.out
done
我想使用它,更具体地说,使用这样的R程序:
Horse 62 and 63
Horse 62 and 64
Horse 62 and 65
Horse 63 and 64
Horse 63 and 65
Horse 64 and 65
我需要在所有可能的组合t1和t2中一次使用两个不同的变量,它们定义了我的主文件" ageecent.txt"的列,必须进行分析。感谢您的关注和支持。
答案 0 :(得分:1)
像arkascha写的那样。您只需要嵌套for循环并添加一个if以检查两个数字是否不同。 bash示例如下所示:
#/bin/bash
NUMBERS="62 63 64 65"
for i in $NUMBERS; do
for j in $NUMBERS; do
if [ "$i" -ne "$j" ]; then
echo "Horse $i and $j"
fi
done
done
产生
Horse 62 and 63
Horse 62 and 64
Horse 62 and 65
Horse 63 and 62
Horse 63 and 64
Horse 63 and 65
Horse 64 and 62
Horse 64 and 63
Horse 64 and 65
Horse 65 and 62
Horse 65 and 63
Horse 65 and 64
- 编辑
也可以不重复数字组合。您可以使用bash的数组功能并基本上对其进行编程或使用如下所示的参数处理(可能有更好看的方式,但它可以工作):
#/bin/bash
NUMBERS="62 63 64 65"
LIST=$NUMBERS
dequeue_from_list() {
shift;
LIST=$@
}
for i in $NUMBERS; do
dequeue_from_list $LIST
for j in $LIST; do
echo "Horse $i and $j"
done
done
产生
Horse 62 and 63
Horse 62 and 64
Horse 62 and 65
Horse 63 and 64
Horse 63 and 65
Horse 64 and 65