リモートLinuxシステムで引数付きのローカルスクリプトを(Windowsから)実行することは可能ですか?
これが私が得たものです:
plink 1.2.3.4 -l root -pw mypassword -m hello.sh
これと同じことを行う方法はありますが、入力パラメーターをhello.shに与えることができますか?
私は次のような多くのことを試しました。
plink 1.2.3.4 -l root -pw mypassword -m hello.sh input1 input2
この場合、plinkはinput1とinput2がその引数であると考えているようです。これは理にかなっています。
私のオプションは何ですか?
私も同じ問題を抱えていました。
あなたは単にこの行を書くことができます
plink 1.2.3.4 -l root -pw pass " myscript.sh arg1 arg2"
たとえば、スクリプトを実行して、パラメーターとして2つのファイルを指定する必要がありました。
plink 1.2.3.4 -l root -pw pass " myscript.sh path/to/file1 path/to/file2"
より詳細な説明については(sshの場合) この回答を参照 。
C:>type script.sh
#!/bin/bash
cd /home/user
echo "hello ${1:-}" > hello.txt
C:>plink user@Host -pw password "bash -s" < script.sh "world"
C:>plink user@Host -pw password "cat /home/user/hello.txt"
hello world
plink
はスクリプトをshスクリプトとして実行しません。内容を個別のコマンドとして送信するだけなので、引数を渡すことはできません。
これを回避するには、シェルにstdinをファイルであるかのように解釈するように指示します。
plink -T ... $Shell /dev/stdin arg1 arg2 arg3 < hello.sh