我偶尔会像这样运行bash命令行:
n=0; while [[ $n -lt 10 ]]; do some_command; n=$((n+1)); done
在一行中运行some_command多次——在本例中为10次。
通常some_command实际上是一个命令链或管道。
有没有更简洁的方法呢?
我偶尔会像这样运行bash命令行:
n=0; while [[ $n -lt 10 ]]; do some_command; n=$((n+1)); done
在一行中运行some_command多次——在本例中为10次。
通常some_command实际上是一个命令链或管道。
有没有更简洁的方法呢?
当前回答
bash配置文件中的一个简单函数(~/。Bashrc经常)可以很好地工作。
function runx() {
for ((n=0;n<$1;n++))
do ${*:2}
done
}
这样叫它。
$ runx 3 echo 'Hello world'
Hello world
Hello world
Hello world
其他回答
如果你正在使用zsh shell:
repeat 10 { echo 'Hello' }
其中10是命令将被重复执行的次数。
在(bashref)循环构造中提到的for的替代形式如何?
还有另一个答案:在空参数上使用参数展开:
# calls curl 4 times
curl -s -w "\n" -X GET "http:{,,,}//www.google.com"
在Centos 7和MacOS上测试。
首先,你可以把它封装在一个函数中:
function manytimes {
n=0
times=$1
shift
while [[ $n -lt $times ]]; do
$@
n=$((n+1))
done
}
这样称呼它:
$ manytimes 3 echo "test" | tr 'e' 'E'
tEst
tEst
tEst
此命令可重复执行此命令10次或更多次
for i in {1..10}; do **your command**; done
例如
for i in {1..10}; do **speedtest**; done