如何从 .screenrc 中定义的 shell 执行别名?

如何从 .screenrc 中定义的 shell 执行别名?

我在 ~/.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)。

相关内容