是否可以在bash中循环元组?
作为一个例子,如果以下工作将是巨大的:
for (i,j) in ((c,3),(e,5)); do echo "$i and $j"; done
有一个解决方法,不知何故让我循环的元组?
$ for i in c,3 e,5; do IFS=","; set -- $i; echo $1 and $2; done c and 3 e and 5
关于这个使用set(from man builtins):
Any arguments remaining after option processing are treated as values
for the positional parameters and are assigned,in order,to $1,$2,
… $n
IFS =“,”设置字段分隔符,因此每个$ i都被正确分段为$ 1和$ 2。
通过this blog。
编辑:更正确的版本,如@SLACEDIAMOND建议:
$ OLDIFS=$IFS; IFS=','; for i in c,5; do set -- $i; echo $1 and $2; done; IFS=$OLDIFS c and 3 e and 5