0

我试图通过编写执行多个 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

如果在终端中输入,这两个命令都可以正常工作,所以我在这里一定缺少某种魔法!

4

1 回答 1

3

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

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

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

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

于 2012-06-17T13:31:16.100 回答