【问题标题】:SSH Windows to UNIXSSH Windows 到 UNIX
【发布时间】:2010-10-24 19:24:05
【问题描述】:

我从连接到 UNIX 服务器的 Windows 机器构建了一个批处理文件。然后我希望命令从批处理文件在 UNIX 中执行。登录到服务器后,UNIX 似乎无法识别我的命令。这是我编码的:

ssh 服务器名 退出

现在,我只是想让它登录并退出。我登录到服务器,但退出命令没有执行。有人知道在我使用此批处理文件登录后让 UNIX 执行我的命令吗?

【问题讨论】:

  • 您的帖子看起来像一个单行命令ssh SERVERNAME exit,但您在编辑模式下的文本显示两行。你想做什么?

标签: windows unix shell ssh


【解决方案1】:

查看plink documentation 上的“7.3 在批处理文件和脚本中使用 Plink”部分。这可能会做你想做的事。

【讨论】:

  • 我一直在努力解决这个问题,以及如何认为这在这种情况下会更好地工作。 (我通常会用 plink 来做其他事情)
  • 更具体地说,我正在尝试运行一个需要用户输入的脚本,但 plink 它始终是非交互式的!?
【解决方案2】:

ssh SERVERNAME '退出'

您最终可能会得到以下结果:

ssh SERVERNAME 'bash some_remote_script.sh'

(用你喜欢的任何 shell 替换 bash)

我不确定为什么“混乱”不断得到支持,他的回答与这个问题无关。 ssh SERVERNAME 'exit' 工作得很好。

【讨论】:

  • +1 这对我有用,谢谢! (另请阅读我对@wr 回答的评论)
【解决方案3】:

嗯,它似乎对我有用,但试试这个:

ssh -t server command

您可能只需要分配的伪终端。

【讨论】:

  • 我认为它“似乎”工作,因为ssh -t server ls 执行ls 然后退出,所以ssh -t server exit 不执行@chaos 建议的任何操作,然后ssh shell 退出! @格里
【解决方案4】:

exit 没有被执行,因为它不是一个命令,它是一个 shell 内部(如果你不相信我,which exit)。请改用echo hello world

【讨论】:

  • 这是一个很好的答案,也可以解释为“尝试基本故障排除”。
  • @innaM 在 sharth 的回答中看到我的评论。
  • ssh -t server echo hello world 对我不起作用!?而ssh -t server ls 可以!
猜你喜欢
  • 2011-07-13
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
相关资源
最近更新 更多