使用 bash 命令通过 SSH 启动分离屏幕

使用 bash 命令通过 SSH 启动分离屏幕

我正在尝试通过 SSH 以分离模式启动屏幕会话,在屏幕内执行 bash 命令......

#!/bin/bash
set -e

ssh [email protected] "screen -wipe"

sleep 1

ssh [email protected] screen -dmS session1 bash -c 'weechat --dir ircdir'

sleep 1

ssh [email protected] -t "screen -x session1"

但是,以下行在脚本中似乎不起作用,但是,它在命令提示符下起作用,有什么想法吗?

ssh [email protected] screen -dmS session1 bash -c 'weechat --dir ircdir'

答案1

我认为“set -e一起”就是问题所在。ssh [email protected] "screen -wipe"

如果没有屏幕会话将失败并返回退出代码 1。ssh [email protected] "screen -wipe"

然后,当set -e设置时,意味着脚本将在非零状态下立即退出。
Bash - 设置

我认为:

  • 跳过非零状态下的退出,即更改“set -e”
  • 确保在运行脚本之前有一个可用的屏幕会话
  • 跳过screen -wipe
  • 符合您要求的其他解决方案

为了调试和尝试,您可以暂时更改set -eset -ex
然后您将看到脚本永远不会到达这一行。
ssh [email protected] screen -dmS session1 bash -c 'weechat --dir ircdir'

此外,为了测试它的运行,请将其更改set -eset -x
然后您将看到它运行并出现在调试消息中。ssh [email protected] screen -dmS session1 bash -c 'weechat --dir ircdir'

相关内容