在同一个终端中同时运行多个命令
- 2024-10-31 08:38:00
- admin 原创
- 48
问题描述:
我想运行几个命令,每个命令在按下Ctrl
+之前都不会退出C
。有什么可以同时运行所有命令,并且Ctrl
+C
会退出所有命令吗?它们可以共享终端输出。
具体来说,我有 compass 编译器、coffeescript 编译器和一个监视文件更改的自定义命令,它们都在运行监视文件更改。我不想为每个命令加载一个终端。
解决方案 1:
此 bash 脚本用于 N 个并行线程。每个参数都是一个命令。
trap
当捕获到 SIGINT 时将终止所有子进程。
wait $PID_LIST
正在等待每个进程完成。当所有进程都完成后,程序退出。
#!/bin/bash
for cmd in "$@"; do {
echo "Process \"$cmd\" started";
$cmd & pid=$!
PID_LIST+=" $pid";
} done
trap "kill $PID_LIST" SIGINT
echo "Parallel processes have started";
wait $PID_LIST
echo
echo "All processes have completed";
将此脚本另存为parallel_commands
并使其可执行。
此脚本的使用方法如下:
parallel_commands "cmd arg0 arg1 arg2" "other_cmd arg0 arg2 arg3"
例子:
parallel_commands "sleep 1" "sleep 2" "sleep 3" "sleep 4"
启动 4 个并行睡眠并等待,直到“睡眠 4”完成。
解决方案 2:
根据@alessandro-pezzato的评论。通过&
在命令之间使用来运行多个命令。
例子:
$ sleep 3 & sleep 5 & sleep 2 &
它将在后台执行命令。
解决方案 3:
使用GNU Parallel:
(echo command1; echo command2) | parallel
parallel ::: command1 command2
杀死:
parallel ::: command1 command2 &
PID=$!
kill -TERM $PID
kill -TERM $PID
参考gnu.org 网站。
解决方案 4:
可以用简单的 Makefile 来完成:
sleep%:
sleep $(subst sleep,,$@)
@echo $@ done.
使用-j
選項。
$ make -j sleep3 sleep2 sleep1
sleep 3
sleep 2
sleep 1
sleep1 done.
sleep2 done.
sleep3 done.
如果没有-j
选项,它将以串行执行。
$ make -j sleep3 sleep2 sleep1
sleep 3
sleep3 done.
sleep 2
sleep2 done.
sleep 1
sleep1 done.
您还可以使用“-n”选项进行试运行。
$ make -j -n sleep3 sleep2 sleep1
sleep 3
sleep 2
sleep 1
解决方案 5:
我建议使用我刚刚编写的一个更简单的实用程序。它目前名为 par,但很快将更名为 parl 或 pll,尚未决定。
API 非常简单:
par "script1.sh" "script2.sh" "script3.sh"
可以通过以下方式添加前缀命令:
par "PARPREFIX=[script1] script1.sh" "script2.sh" "script3.sh"
解决方案 6:
要运行多个命令,只需&&
在两个命令之间添加如下内容:command1 && command2
如果你想在两个不同的终端中运行它们,那么你可以这样做:
gnome-terminal -e "command1" && gnome-terminal -e "command2"
这将打开 2 个终端command1
并command2
在其中执行。
希望这对你有帮助。
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD