
Linux マシンで引数を取る .sh ファイルを実行したいです。Windows マシンからこの .sh ファイルを実行するために plink.exe を使用しています。しかし、.sh ファイルとこのファイル引数を実行する plink.exe を実行するためにバッチ ファイルに何を記述すればよいかわかりません。
次のバッチコマンドを記述しました:
@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 コマンドを 2 番目のシェルにパイプすることで実行できます。
次の変更を試してください。
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