GNU Screen 是否可以检测会话何时已连接并运行命令?(该命令将是我编写的 shell 脚本)
谢谢。
答案1
你到底想做什么?这些可能不能准确回答你的问题,但你也许可以根据自己的需要进行调整:
您可以创建一个名为的脚本screenr
,该脚本将在该会话中第一次执行脚本后重新连接屏幕会话。
#!/bin/bash
screen -X exec /command/to/run
screen -r "$@"
另一个想法可能是将某些东西放入您的程序中.bashrc
以检查您是否正在运行 screen,然后执行命令。只要您启动新的 screen 会话或在 screen 中创建新的 shell,该命令就会运行,但如果您附加了已在运行的 screen 会话,该命令就不会运行。
if [ $TERM = "screen-256color-bce" ]; then
/command/to/run
fi
看了您的其他问题后,看起来屏幕命令 setenv 可能是您想要的,但它仅为在屏幕中启动的新 shell 设置环境变量,而不是已经运行的 shell。
screen -X setenv DISPLAY $DISPLAY