也许我使用了错误的关键字来寻找此要求的答案。
我在远程 Linux 系统上安装了一个 GUI,该系统使用远程连接并通过 X 重定向启动应用程序,如下所示:
ssh -Y [email protected]
cd /home/user.known/TheAppDir/
sh ./ApplicationCommand
有了上面的内容,我就可以在本地 linux 上显示 GUI服务器
我的问题是 - 如何在本地 Linux 上编写一个 bash 来一次性启动上述过程?理想情况下,我想运行一个 bash 脚本,例如:
aServer.ApplicationCommand
这样我的 GUI 就可以在本地运行了?
答案1
如果您创建文件aServer.ApplicationCommand
(不要忘记 chmod +x 使其可执行)并放入其中:
#!/bin/bash
ssh -Y [email protected] "cd /home/user.known/TheAppDir/ ; sh ./ApplicationCommand"
这应该有效。除非您配置了 ssh 密钥,否则系统仍会提示您输入密码。
解释
通过将命令放在 SSH 命令之后,可以严格使用 SSH 来运行命令,而不是返回会话。本质上,执行此操作时,它会打开一个会话,运行提供的命令,然后关闭它。
因为您想要执行多个命令,所以我们只需在它们之间放置一个分号来分隔它们并用引号括起来,这样它仍然是 SSH 命令的参数。
奖金
将脚本重命名为aServer
并将脚本更改为:
#!/bin/bash
ssh -Y [email protected] "cd /home/user.known/TheAppDir/ ; sh ./$1"
并使用 来调用它aServer ApplicationCommand
,这样做的好处是,如果您有多个脚本,TheAppDir
您想调用它,只需更改参数即可。
我认为您甚至仍然可以捕获$?
以查看脚本是否正确执行,并在找不到文件时创建错误消息,但您必须对此进行测试。