#shell #parallel #command #async #server #cmd #stop

app async-cmd

并行运行 shell 命令的工具

1 个不稳定版本

0.1.1 2019年6月27日
0.1.0 2019年6月27日

59#cmd

29 每月下载量

GPL-3.0-or-later

23KB
562 代码行

async

async 是一个用于并行运行 shell 命令的工具,旨在通过最小更改快速并行化 shell 脚本。它受到 GNU Parallel 的启发,主要区别在于 async 通过在后台运行服务器来保留命令之间的状态。

用法

有关命令行界面的所有信息均可通过使用 async --help 获取。以下是如何使用 async 并行化命令的示例

#!/bin/bash
S="/tmp/example_socket"

async -s="$S" server --start

for i in {1..20}; do
    # prints command output to stdout
    async -s="$S" cmd -- bash -c "sleep 1 && echo test $i"
done

# wait until all commands are finished
async -s="$S" wait

# configure the server to run four commands in parallel
async -s="$S" server -j4

mkdir "/tmp/ex_dir"
for i in {21..40}; do
    # redirects command output to /tmp/ex_dir/file*
    async -s="$S" cmd -o "/tmp/ex_dir/file$i" -- bash -c "sleep 1 && echo test $i"
done

async -s="$S" wait

# stops server
async -s="$S" server --stop

如果您遇到意外错误或崩溃,请通过设置环境变量 RUST_LOG=debug 来开启日志记录,并在 Github 仓库中提交问题。

安装

async 可以使用 cargo 通过 cargo install async-cmd 或从 AUR 安装。

依赖

~4–14MB
~144K SLoC