首页 > 解决方案 > 在 Shell 文件创建的 tmux 会话中激活虚拟环境

问题描述

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

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

这是我的 activate.sh 文件

source "venv/bin/activate"

我究竟做错了什么。谁能帮我吗?

标签: shellshvirtualenvtmux

解决方案


您正在source activate.sh当前的 shell 中执行,而不是在新创建的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 的工作目录。)


推荐阅读