以下是我当前的.bat内容。我在窗口cmd上运行它。它将连接到远程linux服务器并提示我密码。但是在我输入密码并登录为remotehost后,linux服务器将不会运行我的ls命令。请帮忙。
@echo off
ssh remotehost@10.1.1.10
ls
答案 0 :(得分:1)
你真的应该man ssh
,因为这里有解释(你也可以通过互联网搜索来获得答案)。
但是,无论如何要回答你的问题:你应该把你想要在远程机器上运行的所有命令与实际的ssh命令放在同一行,例如运行目录列表和grep所有包含“foo”的文件, :ssh <user>@<host> 'ls|grep foo'
。
答案 1 :(得分:0)
我暗示可以在我对@Sami Laine的评论中将代码放在批处理文件中。这就是它的样子:
@echo off
setlocal
:: Run the end of this file in remote computer
more +8 %0 | plink user@remote.compu.ter "tr -d '\r'| bash"
endlocal
exit /b 0
:: remote bash stuff to be bootstrapped
pwd
ls -h
我正在使用plink,因为我已安装但它应该适用于大多数ssh风格。也适用于ksh和zsh。也许还有tcsh csh等。这有时候很有用。相同的技术可以用于很多事情。小心它必须在右边的+8偏移值。