You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不同终端并行运行不同目录下的Bash脚本?

在独立终端中并行运行多个Bash脚本

按终端类型选择对应方法

不同桌面环境或系统的终端启动命令不一样,以下是常见场景的解决方案:

GNOME Terminal(GNOME桌面)

直接指定工作目录并启动新窗口运行脚本:

gnome-terminal --working-directory="/path/to/prog1_dir" -- ./prog1.sh &
gnome-terminal --working-directory="/path/to/prog2_dir" -- ./prog2.sh &

--working-directory用来指定脚本执行的目录,--区分终端参数和要执行的命令,末尾的&让当前终端不阻塞,能继续执行下一条命令。

Konsole(KDE桌面)

用--workdir指定工作目录,-e指定要运行的脚本:

konsole --workdir="/path/to/prog1_dir" -e ./prog1.sh &
konsole --workdir="/path/to/prog2_dir" -e ./prog2.sh &

xterm(轻量通用终端)

xterm没有直接指定工作目录的参数,先切换目录再执行脚本:

xterm -e "cd /path/to/prog1_dir && ./prog1.sh" &
xterm -e "cd /path/to/prog2_dir && ./prog2.sh" &

macOS(Terminal/iTerm2)

  • 自带Terminal.app:
    osascript -e 'tell application "Terminal" to do script "cd /path/to/prog1_dir && ./prog1.sh"' &
    osascript -e 'tell application "Terminal" to do script "cd /path/to/prog2_dir && ./prog2.sh"' &
    
  • iTerm2:
    osascript -e 'tell application "iTerm" to create window with default profile command "cd /path/to/prog1_dir && ./prog1.sh"' &
    osascript -e 'tell application "iTerm" to create window with default profile command "cd /path/to/prog2_dir && ./prog2.sh"' &
    

批量处理多个脚本

如果要运行的脚本数量多,可以写个循环脚本批量处理,比如创建run_scripts.sh:

#!/bin/bash

# 按"工作目录 脚本名"的格式添加所有要运行的项
scripts=(
  "/path/to/prog1_dir prog1.sh"
  "/path/to/prog2_dir prog2.sh"
  "/path/to/prog3_dir prog3.sh"
)

# 这里以GNOME Terminal为例,换成你用的终端命令即可
for item in "${scripts[@]}"; do
  read dir script <<< "$item"
  gnome-terminal --working-directory="$dir" -- ./"$script" &
done

给脚本加执行权限后运行:

chmod +x run_scripts.sh
./run_scripts.sh

替代方案:用终端复用工具(不用开多个窗口)

如果不想打开一堆终端窗口,可以用tmux或screen在同一个终端内分窗运行:

tmux操作步骤

  1. 先启动tmux:
    tmux
    
  2. 手动分窗运行:
    • 水平分窗:按下Ctrl+b再按%,在新窗格里执行cd /path/to/prog1_dir && ./prog1.sh
    • 垂直分窗:按下Ctrl+b再按",在新窗格里执行cd /path/to/prog2_dir && ./prog2.sh
  3. 也可以用命令直接创建分窗会话:
    tmux new-session -d -s script_session "cd /path/to/prog1_dir && ./prog1.sh"
    tmux split-window -h -t script_session "cd /path/to/prog2_dir && ./prog2.sh"
    tmux attach -t script_session
    

内容的提问来源于stack exchange,提问作者Raiyan Chowdhury

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 22:31:15