在Gnu屏幕附件上执行命令

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

谢谢。

你究竟想做什么? 这些可能无法完全回答您的问题,但您可以根据自己的需求进行调整:

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

#!/bin/bash screen -X exec /command/to/run screen -r $@ 

另一个想法可能是在你的.bashrc中添加一些内容来检查你是否正在运行屏幕,然后执行一个命令。 无论何时启动新的屏幕会话或在屏幕上创建新的shell,它都将运行,但如果您附加已经运行的屏幕会话,它将无法运行。

 if [ $TERM = "screen-256color-bce" ]; then /command/to/run fi 

编辑:看到你的另一个问题后,看起来屏幕命令setenv可能就是你想要的,但它只为在屏幕上启动的新shell设置环境变量,而不是已经运行的。

 screen -X setenv DISPLAY $DISPLAY