shell - 在 Shell 文件创建的 tmux 会话中激活虚拟环境
问题描述
我编写了一个 shell 脚本,理想情况下应该创建一个 tmux 会话并在其中激活虚拟环境。但它在创建 tmux 会话后不会激活它。这是代码片段:
cd /home
cd Portals/
tmux new-session -d -s devgeo
source activate.sh
这是我的 activate.sh 文件
source "venv/bin/activate"
我究竟做错了什么。谁能帮我吗?
解决方案
您正在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 的工作目录。)
推荐阅读
- git - 无法通过 PlugInstall 在 vim 中安装插件
- python - 切片以在熊猫数据框中使用一组点制作向量
- excel-formula - Excel公式根据数组的多个条件对数组求和——Fantasy Football
- webpack - 在 craco 中读取配置文件创建反应应用程序设置
- swift - Domain=kCLErrorDomain Code=1 "(null)" Google Maps IOS
- database - 没有数据的 StackOverflow 数据库的数据库架构
- elasticsearch - 无法解析 /etc/logstash [ELK Stack] 中的 logstash.yml 文件
- java - 如何使用飞碟制作不可编辑的pdf
- sql - 如何使用 sys.time_zone_info 检索用户定义的时区的本地时间
- java - 如何从控制器获取 1-20 个复选框的值?