我知道如何通过这种方式轻松生成列表:
echo {a,b,c,d} _ {0..3}
这会给:
a_0 a_1 a_2 a_3 b_0 b_1 b_2 b_3 c_0 c_1 c_2 c_3 d_0 d_1 d_2 d_3
但是如何生成相同的列表,但第二个大括号的优先级更高,以获得这个? :
a_0 b_0 c_0 d_0 a_1 b_1 c_1 d_1 a_2 b_2 c_2 d_2 a_3 b_3 c_3 d_3
任何技巧,比如从末尾或字符n中排序都可以,只要它适合一行.我也在使用zsh,但使用bash的东西很好.
这没有实现,但你可以使用像丑陋的黑客
echo $(eval echo \{a,d\}_{0..3})
通过积极地首先评估后一个支撑并且在第二步中第一个支撑来实现它.
请记住,虽然中间步骤必须足够小,以便仍可由shell解析;-)