通过 putty 在 Linux 机器上运行 .sh 文件

通过 putty 在 Linux 机器上运行 .sh 文件

我想在 Linux 机器上运行一个带有参数的 .sh 文件。我使用 plink.exe 从 Windows 机器执行此 .sh 文件。但我不知道在批处理文件中要写什么才能运行 plink.exe,然后 plink.exe 会执行 .sh 文件和此文件参数。

我写了以下批处理命令:

@echo off  
start C:\Users\Prateek\Desktop\PLINK.EXE -ssh -P 22 user@host -pw password sh -x  "/home/user/copy.sh"

执行后,我得到:

+ echo ''  

+ echo 'Enter partner id'  
Enter partner id  
+ read pid  
:  

实际上,“输入合作伙伴 ID”是我需要传递的参数。

答案1

我仍然不太明白你想要什么,但我会做一些假设,然后我们就可以看看它是如何进行的 ;-) 不幸的是,我也没有现成的 Windows shell,所以我的 Batch foo 可能有点不对劲,特别是在引用方面,如果内容包含空格,情况会更糟。欢迎编辑。

  1. 我理解您想为批处理文件提供命令行参数。然后,该参数将在批处理文件中以 的形式提供%1

  2. 我假设上一段中获得的字符串应该作为输入提供给 UNIX shell 脚本。这可以(例如)在 Linux 机器上的登录 shell 中通过将 echo 命令传送到第二个 shell 来完成。


尝试如下修改:

start C:\Users\Prateek\Desktop\PLINK.EXE -ssh -P 22 user@host -pw password echo %1 ^| sh -x  "/home/user/copy.sh"

如果以 方式调用mybatch.bat SomeText,它应该在远程主机的 shell 中运行以下命令:

echo SomeText | sh -x /home/user/copy.sh

它运行copy.sh后会让它认为有人SomeText在键盘上输入了内容。

相关内容