在 Gnu Screen 附件上执行命令

San*_*dro 5 gnu-screen

GNU Screen 是否可以检测会话何时被附加并运行命令?(该命令将是我编写的 shell 脚本)

谢谢。

小智 2

你到底想做什么?这些可能不能完全回答您的问题,但您可以根据您的需求进行调整:

您可以创建一个名为 的脚本screenr,该脚本将在该会话中首次执行脚本后重新附加屏幕会话。

#!/bin/bash
screen -X exec /command/to/run
screen -r "$@"
Run Code Online (Sandbox Code Playgroud)

另一个想法可能是在你的程序中放入一些东西.bashrc来检查你是否正在运行屏幕,然后执行命令。每当您启动新的屏幕会话或在屏幕中创建新的 shell 时,它就会运行,但如果您附加已经运行的屏幕会话,它就不会运行。

if [ $TERM = "screen-256color-bce" ]; then
    /command/to/run
fi
Run Code Online (Sandbox Code Playgroud)

看到您的其他问题后,似乎 screen 命令 setenv 可能是您想要的,但它仅为在 screen 中启动的新 shell 设置环境变量,而不是已经运行的 shell。

screen -X setenv DISPLAY $DISPLAY
Run Code Online (Sandbox Code Playgroud)