
Linux 시스템에서 인수를 취하는 .sh 파일을 실행하고 싶습니다. 나는 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 셸이 없으므로 내 Batch foo는 다음과 같을 수 있습니다. 특히 인용과 관련하여 공백이 포함된 경우에는 두 배로 줄어듭니다. 편집을 환영합니다.
배치 파일에 명령줄 인수를 제공하고 싶다는 점을 이해합니다. 그러면 배치 파일 내에서
%1
.이전 단락에서 얻은 문자열이 UNIX 쉘 스크립트에 입력으로 제공되어야 한다고 가정합니다. 예를 들어 Linux 상자의 로그인 셸에서 echo 명령을 두 번째 셸에 연결하여 이 작업을 수행할 수 있습니다.
다음 수정을 시도해 보세요.
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
원격 호스트의 셸에서 다음을 실행해야 합니다.
echo SomeText | sh -x /home/user/copy.sh
실행되어 누군가가 키보드로 copy.sh
입력했다고 생각하게 만듭니다 .SomeText