我写了一个shell脚本,理想情况下应该创建一个tmux会话并在其中激活虚拟环境。但是创建tmux会话后它不会激活它。这是代码段:
cd /home
cd Portals/
tmux new-session -d -s devgeo
source activate.sh
这是我的activate.sh文件
source "venv/bin/activate"
我在做什么错。有人可以帮我吗?
答案 0 :(得分:1)
您正在当前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的工作目录。)