有可能做这样的事情:
start=1
end=10
echo {$start..$end}
# Ouput: {1..10}
# Expected: 1 2 3 ... 10 (echo {1..10})
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 55
在bash中,大括号扩展在变量扩展之前发生,因此这不可能直接实现.
相反,使用算术for循环:
start=1
end=10
for ((i=start; i<=end; i++))
do
echo "i: $i"
done
Run Code Online (Sandbox Code Playgroud)
i: 1
i: 2
i: 3
i: 4
i: 5
i: 6
i: 7
i: 8
i: 9
i: 10
Run Code Online (Sandbox Code Playgroud)
cni*_*tar 24
你应该考虑使用seq(1).你也可以使用eval:
eval echo {$start..$end}
Run Code Online (Sandbox Code Playgroud)
这是 seq
seq -s' ' $start $end
Run Code Online (Sandbox Code Playgroud)
bmk*_*bmk 10
你必须使用eval:
eval echo {$start..$end}
Run Code Online (Sandbox Code Playgroud)
如果你没有seq,你可能想坚持使用普通for循环
for (( i=start; i<=end; i++ )); do printf "%d " $i; done; echo ""
Run Code Online (Sandbox Code Playgroud)