【发布时间】:2011-04-13 20:34:42
【问题描述】:
我偶尔会像这样运行 bash 命令行:
n=0; while [[ $n -lt 10 ]]; do some_command; n=$((n+1)); done
连续运行some_command 多次 -- 在本例中为 10 次。
some_command 通常是一个命令链或管道。
有没有更简洁的方法来做到这一点?
【问题讨论】:
-
除了其他不错的答案外,您还可以使用
let ++n代替n=$((n+1))(少3 个字符)。 -
这些方法中哪些是可移植的一些迹象会很好。
-
如果你愿意换壳,
zsh有repeat 10 do some_command; done。 -
@JohnVandivier 我刚刚在新的 18.04 docker 容器中的 bash 中尝试过,我的问题中发布的原始语法仍然有效。也许您正在运行 bash 以外的 shell,例如 /bin/sh,这确实是 dash,在这种情况下,我会返回
sh: 1: [[: not found。