![如何从 .screenrc 中定义的 shell 执行别名?](https://linux22.com/image/161305/%E5%A6%82%E4%BD%95%E4%BB%8E%20.screenrc%20%E4%B8%AD%E5%AE%9A%E4%B9%89%E7%9A%84%20shell%20%E6%89%A7%E8%A1%8C%E5%88%AB%E5%90%8D%EF%BC%9F.png)
我在 ~/.bash_aliases 中有一些别名设置,我想在 .screenrc 中执行
chdir ~/projects/profullstack/edcast/edc-web
screen -t SHELL 0 edc-web-local
chdir ~/projects/profullstack/edcast/edc-cms
screen -t SHELL 1 edc-cms-local
chdir ~/projects/profullstack/edcast/edcast
screen -t SHELL 2 edcast-local
screen -t mysql 3 /home/linuxbrew/.linuxbrew/opt/[email protected]/bin/mysql.server start
screen -t elastic 4 /home/linuxbrew/.linuxbrew/opt/[email protected]/bin/elasticsearch
但未找到这些别名。
答案1
我假设edc-web-local
是一个示例别名。我让它工作的唯一方法是bash -ic
在命令前面添加:
screen -t SHELL 0 bash -ic edc-web-local
..对于其他别名命令也有同样的技巧
-c
告诉下一个参数(不是选项)是要执行的命令。-i
告诉 shell 以“交互”模式运行,这意味着它打开别名解析并加载~/.bashrc
(通常加载~/.bash_aliases
)。