通过脚本SSH x转发/屏幕

时间:2012-06-17 12:43:51

标签: linux bash ssh gnu-screen

我试图通过编写执行多个ssh命令的脚本来减少输入。 虽然简单地打开编辑器没有问题,但我无法打开具有特定文件的编辑器:

这有效:

editFile="ssh -X -t $username@$serverIP 'nano'"
$editFile

这不是:

editFile="ssh -X -t $username@$serverIP 'nano ~/test'"
$editFile

我也无法连接到这样的屏幕,只需启动屏幕即可正常工作:

viewScreen="ssh -X -t $username@$serverIP 'screen -r screen1'
$viewScreen

如果我添加-v标志,在建立连接后我会收到此错误:

debug1: Sending command: 'nano /home/herb/.Scripts/test.txt'
bash: nano ~/test: No such file or directory

debug1: Sending command: 'screen -r screen1'
bash: screen -r screen1: command not found

如果在终端中输入两个命令都没有问题,所以我必须在这里找到某种魔法!

1 个答案:

答案 0 :(得分:3)

一个问题是您对“command”参数使用单引号。没有它们,它应该工作(或者至少给你一个不同的错误)。

您还应该使用“alias”命令,而不是将命令分配给变量:

alias viewScreen="ssh -X -t $username@$serverIP screen -r screen1"
viewScreen

请注意,这会在定义别名时评估变量。因此,应在之前定义$ username和$ serverIP。