Execute o arquivo .sh na máquina linux via putty

0

Eu quero executar um arquivo .sh que leve um argumento em uma máquina Linux. Eu estou usando plink.exe para executar este arquivo .sh de uma máquina windows. Mas eu não sei o que escrever no arquivo de lote para rodar o plink.exe que por sua vez executa o arquivo .sh e este argumento de arquivo.

Eu escrevi o seguinte comando batch:

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

Ao executá-lo, recebo:

+ echo ''  

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

Na verdade, 'Digite o ID do parceiro' é o argumento que preciso transmitir.

    
por Prateek 18.09.2012 / 16:02

1 resposta

1

Eu ainda não entendo o que você quer, mas vou fazer algumas suposições, então podemos ver como está ;-) Infelizmente, eu não tenho um shell do Windows prontamente disponível, então meu Batch foo pode estar um pouco errado, especialmente no que diz respeito à citação, duplamente se as coisas contiverem espaços. Edições são bem vindas.

  1. Eu entendo que você deseja fornecer um argumento de linha de comando para o seu arquivo de lote. Isso estará disponível dentro do arquivo em lote como %1 .

  2. Eu assumo que a string obtida no parágrafo anterior deve ser fornecida ao shell script UNIX como entrada. Isso pode (por exemplo) ser feito no shell de login na caixa do Linux, canalizando um comando echo para o segundo shell.

Tente a seguinte modificação:

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

Se invocado como mybatch.bat SomeText , ele deve executar o seguinte em um shell no host remoto:

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

que executa copy.sh e faz pensar que alguém digitou SomeText em um teclado para ele.

    
por 18.09.2012 / 17:07

Tags