带有交互式输入的 Bash printf 序列

带有交互式输入的 Bash printf 序列

在 bash 中如何printf以交互方式获取输入以打印序列。我尝试了以下方法:

read x; read y; printf '%s\n' {"$x".."$y"..5}
0
40
{0..40..5}

因此我试图获得这样的输出:

printf '%s\n' {0..40..5}
0
5
10
15
20
25
30
35
40

答案1

问题是您不能在 bash 括号扩展中以这种方式使用变量。

相反,你可以使用seq

read x; read y; printf '%d\n' $(seq "$x" 5 "$y")

或者更直接地

read x; read y; seq "$x" 5 "$y"

或 C 风格for循环:

read x; read y; for ((i=x;i<=y;i+=5)); do printf '%d\n' "$i"; done

例如

相关内容