[英]Execute commands in a csv file (bash / Mac)
我有一个csv
文件,该文件在命令行中包含一堆命令。 我只是可以bash
这个csv文件,但是命令将在同一终端中顺序执行。 有没有办法在单独的终端中执行这些命令中的每一个,以便它们并行执行?
例:
就像是:
python args1
python args2
...
python argsn
您基本上已经有了一个Shell脚本。 唯一的区别是,您希望将每一行作为单独的命令运行,而不是将其作为一个脚本运行。 打开新终端的方式在某种程度上取决于操作系统,但是假设您仅使用xterm
命令。 下面将把您的脚本commands.csv
(或任何命名的文件)视为数据文件。
while IFS= read -r cmdline; do
xterm -e sh -c "$cmdline" &
done < commands.csv
如果您想在Mac上进行任何认真的软件开发,我建议您安装Homebrew,因为Apple不提供软件包管理器,但可以提供大多数人使用的所有工具的旧版本... Python,sed,PHP, Perl,awk,find,grep,make,git ...
自制软件后 ,我建议您使用以下命令安装GNU Parallel :
brew install parallel
一旦有了GNU Parallel ,就可以与以下命令并行运行命令:
parallel --dry-run -a commands.csv
或者,也许您想要标有其名称的行:
parallel --tag -a commands.csv
如果您希望一次运行8,请添加-j 8
。 如果您希望预计到达时间(应在何时完成)添加--eta
等等。
顺便说一句,您可以使用以下工具寻找其他工具,例如Intel TBB:
brew search tbb
或pango,具有:
brew search pango
您可以在后台运行命令,例如
run-command &
run-some-other-command &
etc &
那是您可以使用的东西吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.