一个很好的用户解决了我的问题,所以我改变了我的问题,现在它和另一个不一样了。我的排列现在看起来像这样:
x=3
for i in $(eval echo "{1..$x}{1..$x}{1..$x}"); do
echo "$i"
done
如何使用两个"for"句点和"seq"命令从输出中获取这些数字(123,132,231,213,321,312)?
如果您希望能够在{1..3}
中动态设置3,例如{1..$x}
.如果您尝试这样做,您将体验到输出将是{1..3}
而不是预期的1 2 3
。这是因为大括号在变量之前展开。
您需要使用的eval echo "{1..$x}"
确实会输出1 2 3
。 在 for 循环中,您可以使用命令替换:
x=3
for i in $(eval echo "{1..$x}{1..$x}{1..$x}"); do
echo "$i"
done