Putty 手動會話和 Plink 會話的行為不同

Putty 手動會話和 Plink 會話的行為不同

您好,我正在使用 win PC 上的 putty 連接到遠端 Linux 伺服器並在那裡執行某些命令。我希望使用 plink 自動執行任務,如下所示:

plink serveradress -l userid -pwd pass -batch "ls;cmd1"

如果我透過 putty/plink 手動執行命令“ls;cmd1;cmd2”,它的工作正常。但是,如果我透過 cmd.ext 和上面的 plink 命令執行相同的操作,我會得到「bash cmd1 not found」。但是,ls 指令工作正常。

為什麼會出現這種情況? PS:cmd1不是內建的linux指令。我想它是專門為伺服器創建的。

我該如何進行這項工作?

答案1

當 bash 抱怨「找不到命令」時,這意味著cmd1$PATH.因此,您必須確保 的路徑cmd1始終位於 中$PATH,或必須指定 的完整路徑名cmd1

plink serveradress -l userid -pwd pass -batch "ls;/where/you/can/find/cmd1"

which cmd1您可以在互動式 shell(透過 putty 的 shell)中找到完整路徑名。

~/.bashrc您可以在或中設定 PATH ~/.profile,即主目錄中的 .bashrc 或 .profile。

echo $PATH您可以在 putty 會話中檢查 PATH或使用plink serveradress -l userid -pwd pass -batch 'echo $PATH'(注意單引號)。如果兩者都做,您應該會看到差異。

相關內容