我有旧版本的bash:3.2.25 我正在尝试写一个for循环:
#!/bin/bash
filename="K"
for k in {2..20..2}
do
filename=$filename$k
done
这应该给我:
K2
K4
.
.
K20
但这就是它给我的东西:
K{2..20..2}
K{2..20..2}
.
.
K{2..20..2}
是因为它是bash的旧版本吗?我怎样才能让它发挥作用?列出所有值不是解决方案,因为我将不得不使用{5..201}。
答案 0 :(得分:5)
我相信这是在bash 4中添加的。
你可以这样做:
for (( k=5; k<=201; k+=2 )); do
filename=$filename$k
done
答案 1 :(得分:3)
您可以将for循环更改为以下语法:
#!/bin/bash
filename="K"
for ((k=2;k<=20;k+=2))
do
echo "$filename$k"
done
答案 2 :(得分:3)
您可以改为使用seq
程序:
for k in $(seq 2 2 20); do
filename=$filename$k
done
答案 3 :(得分:2)
#!/bin/bash
filename="K"
for k in $(seq 2 2 20)
do
filename2=$filename$k
echo $filename2
done
测试:
K2
K4
K6
K8
K10
K12
K14
K16
K18
K20