#run-command #loops #execution #exit #statistics #end #nothing

app loop-bin

循环执行命令,别无其他

4个版本

0.1.3 2023年1月20日
0.1.2 2022年8月9日
0.1.1 2022年8月9日
0.1.0 2022年8月9日

#8 in #end

Apache-2.0

14KB
262

♾️ loop

循环执行命令,别无其他。

USAGE:
    loop [OPTIONS] <CMD>...

ARGS:
    <CMD>...    Command to execute

OPTIONS:
    -d, --delay <delay>    Delay between iteration in milliseconds
    -h, --help             Print help information
    -i, --iter <iter>      Number of iteration
        --no-stat          Do not display statistics at the end of execution
        --while-ko         Loop while exit code is failure
        --while-ok         Loop while exit code is success

安装

$ cargo install loop-bin

示例

$ loop --iter 4 --delay 1000 date
Tue Aug  9 06:59:58 CEST 2022
Tue Aug  9 06:59:59 CEST 2022
Tue Aug  9 07:00:00 CEST 2022
Tue Aug  9 07:00:01 CEST 2022

date total: 4 ok: 4 ko: 0

在执行结束(或如果 ctrl+c 中断循环)时,输出成功和失败的总数。此摘要可以通过 --no-stat 选项禁用。

loop 可以很容易地与 time 一起使用

  • 生成随机时间
    $ dd if=/dev/urandom of=/dev/null bs=1 count=1024 status=none
    
  • 循环1000次生成随机数据
    $ loop --iter 1000 --no-stat dd if=/dev/urandom of=/dev/null bs=1 count=1024 status=none
    
  • 需要多长时间
    $ time loop --iter 1000 --no-stat dd if=/dev/urandom of=/dev/null bs=1 count=1024 status=none
    loop --iter 1000 --no-stat dd if=/dev/urandom of=/dev/null bs=1 count=1024   0.60s user 1.05s system 95% cpu 1.723 total
    

另一个示例,使用 hurl 对HTTP端点进行测试

$ loop --while-ok hurl test.hurl
...
hurl total: 140 ok: 139 ko: 1

依赖项

~2–13MB
~107K SLoC