我试图通过编写执行多个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
如果在终端中输入两个命令都没有问题,所以我必须在这里找到某种魔法!
答案 0 :(得分:3)
一个问题是您对“command”参数使用单引号。没有它们,它应该工作(或者至少给你一个不同的错误)。
您还应该使用“alias”命令,而不是将命令分配给变量:
alias viewScreen="ssh -X -t $username@$serverIP screen -r screen1"
viewScreen
请注意,这会在定义别名时评估变量。因此,应在之前定义$ username和$ serverIP。