小智 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)