在bash中的元组上循环?

前端之家收集整理的这篇文章主要介绍了在bash中的元组上循环?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以在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

猜你在找的Bash相关文章