SSHを介してリモートホストでローカル(非シェル)スクリプトを実行するには?

SSHを介してリモートホストでローカル(非シェル)スクリプトを実行するには?

cat someFile | ssh someHostsomeFileがあるときにどのように機能させることができますか?いいえバッシュスクリプト?リモートで実行したいです。真珠しかしcat | sshコマンドを使用しようとすると、bashスクリプトで構文エラーが発生します。

ベストアンサー1

SSH接続を介してPerlスクリプトをプッシュするには、リモート側でPerlソルバーを実行する必要があります。標準入力からスクリプトを読みます。

ssh remotehost perl < somescript.pl

Perlの場合、-T入力からコマンドラインスイッチ(hashbang行を除く)まで読み取る必要があります。

Perlインタプリタにコマンドライン引数を指定したい場合は、その引数をコマンドラインの末尾に追加できますperl。欲しいならスクリプト、stdinからスクリプトを読み込むようにインタプリタに明示的に指示する必要があります(そうでない場合は、検索するファイル名として最初の引数を使用します)。

-l通訳者とfooスクリプトは次のとおりですbar

echo 'print "> $_"  foreach @ARGV' | ssh remotehost perl -l - foo bar 

これはssh somehost < script.shスクリプトと互換性のあるリモートログインシェルにのみ依存することに注意してください。 (つまり、リモートシェルが別のシェルの場合、Bashスクリプトは機能しません。)

おすすめ記事