在 Shell 文件创建的 tmux 会话中激活虚拟环境

Activate Virtual Environment in tmux session created by Shell file

我写了一个 shell 脚本,理想情况下应该创建一个 tmux 会话并在其中激活虚拟环境。但它在创建 tmux 会话后不会激活它。这是代码片段:

cd /home
cd Portals/
tmux new-session -d -s devgeo 
source activate.sh

这是我的 activate.sh 文件

source "venv/bin/activate"

我做错了什么。谁能帮帮我?

您正在当前 shell 中执行 source activate.sh,而不是在新创建的 tmux 会话中的 shell 运行 中。使用 send-keys 命令将该命令发送到 shell,就像您自己输入的一样。

tmux new-session -c /home/Portals -d -s devgeo
tmux send-keys -t devgeo:1 "source activate.sh" C-m

-c 选项可让您设置新会话的工作目录,而无需更改当前 shell 的工作目录。)