我在 bash 中定义了一个列表,如下所示:
list="element1 element_2 my_element_3 element04"
Run Code Online (Sandbox Code Playgroud)
我想做一个循环,遍历所有可能的对组合。在 Perl 中,我会使用 while/foreach 并在列表上进行如下移动:
while (my $element1 = shift (@list)) {
foreach my $element2 (@list) {
print "$element1 - $element2\n";
}
}
Run Code Online (Sandbox Code Playgroud)
我不想要对中的相同元素,也不关心对的顺序,所以如果列表是“AB C”,结果应该是:
A - B
A - C
B - C
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 bash 中做等效的事情?
jw0*_*013 10
最简单的方法似乎是使用位置参数。
set -- value1 value2 "value with spaces"
for a; do
shift
for b; do
printf "%s - %s\n" "$a" "$b"
done
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13369 次 |
| 最近记录: |