我正在运行带有 Bash 的 Ubuntu 14.04(Cinnamon Mint 17.1)。每次打开新的终端窗口时,我都会输入screen
以启动屏幕窗口管理器,但我希望 shell 能帮我完成这个操作。
我认为我需要修改.bashrc
而不是.profile
,以便它在每个新终端窗口启动,而不仅仅是在登录时启动。因此,我在 的末尾添加了以下内容.bashrc
以替换 shell 进程:
exec /usr/bin/screen -q
当我启动一个新的终端窗口时:
- 通常,我会看到一个带有闪烁光标的空白窗口,并且只有在按下 后才会出现 Bash 提示符
Ctrl+C
。 Ctrl+C
有时,当我按下或调整终端窗口大小时,终端窗口会立即关闭。- 有时,我会收到一个没有的 Bash 提示符
$LS_COLORS
(虽然很难重现这种情况,所以我不完全确定它何时或为何发生)。
有人能解释为什么这对我来说会失败,并提出解决方案吗?
谢谢,
休
答案1
当 screen 启动时,第一个窗口会启动你的 shell,并且你已经告诉你的 shell 启动 screen。然后,当 screen 启动时,第一个窗口会启动你的 shell,并且你已经告诉你的 shell 启动 screen。然后,当 screen 启动时...
涂抹泡沫,冲洗,重复。
screen 将$TERM
变量设置为"screen"
,因此为了避免无休止地递归调用 screen (“乌龟一直往下”),你的 .bashrc 可以以此结尾:
[[ $TERM != "screen" ]] && exec screen -q