我有一个csv
文件,其中包含命令行中的一堆命令。我只能bash
这个csv文件,但命令将在同一个终端中顺序执行。有没有办法在一个单独的终端中执行这些命令中的每一个,以便它们并行执行?
示例:
就像:
python args1
python args2
...
python argsn
答案 0 :(得分:2)
你基本上只有一个shell脚本。唯一的区别是,不是将其作为一个脚本运行,而是希望将每一行作为单独的命令运行。如何打开一个新终端有点依赖于操作系统,但我们假设您只使用xterm
命令。以下内容将您的脚本commands.csv
(或其命名的任何内容)视为数据文件。
while IFS= read -r cmdline; do
xterm -e sh -c "$cmdline" &
done < commands.csv
答案 1 :(得分:2)
如果您想在Mac上进行任何严肃的软件开发,我建议您安装自制软件,因为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
等等。
顺便说一句,您可以通过以下方式寻找其他工具,例如英特尔TBB:
brew search tbb
或pango,附:
brew search pango
答案 2 :(得分:-1)
您可以在后台运行命令,如
run-command &
run-some-other-command &
etc &
是你可以使用的东西吗?