bash seq替换({1..10})中的变量[重复]

|                                                                                                                   这个问题已经在这里有了答案:                                                      
已邀请:
        在bash中,大括号扩展发生在变量扩展之前,因此这不可能直接实现。 而是使用算术“ 0”循环:
start=1
end=10
for ((i=start; i<=end; i++))
do
   echo \"i: $i\"
done
输出值
i: 1
i: 2
i: 3
i: 4
i: 5
i: 6
i: 7
i: 8
i: 9
i: 10
    
        您应该考虑使用
seq(1)
。您也可以使用eval:
eval echo {$start..$end}
这是
seq
seq -s\' \' $start $end
    
        您必须使用
eval
eval echo {$start..$end}
    
        如果您没有
seq
,则可能要坚持使用普通的for循环
for (( i=start; i<=end; i++ )); do printf \"%d \" $i; done; echo \"\"
    
        我通常只是这样做:
echo `seq $start $end`
    
        您是否肯定这是BASH? ZSH以您想要的方式处理此问题。这在BASH中不起作用,因为括号扩展发生在任何其他扩展类型(例如变量扩展)之前。因此,您将需要使用其他方法。 您需要结合括号和变量扩展的任何特殊原因吗?也许对您的问题采用不同的方法可以消除对此的需要。     

bab

        使用-s 例如: seq -s \'\'1 10 输出:1 2 3 4 5 6 7 8 9 10     

要回复问题请先登录注册