さて、SSH経由で一連のコマンドを実行する必要があるスクリプトがありますが、提供されたターゲットがホスト名ではなくローカルパスである場合、同じコマンドをローカルで実行できるようにしたいと思います。
これで、ローカルで操作しているかどうかをそれほど問題なく判断できますが、実行するコマンドのセットが非常に複雑であり、ssh に直接引数として指定するのに適しているよりもはるかに多くのコマンドを実行する必要があります。
私がやりたいことは次のようなものです:
if [ -n "$HOST" ]
then
ssh "$HOST"
fi
# Run some commands
# exit
ただし、適切な変数を渡して、ローカルを対象とした場合にスクリプトを早期に終了させずに終了する方法など、明らかな問題があります。これが可能かどうかはわかりませんが、実際にリモートで実行されている通常のシェルコマンドを使用して上記のようなことを行う方法はありますか?
そうでない場合は、別の方法として、実行する必要があるコマンドを独自のシェル スクリプトに抽出し、ssh コマンドがシェル スクリプトを (まだ存在しない場合は) コピーしてから実行するようにします。それを行う方法もわかりませんか?私は基本的な UNIX コマンドには精通していますが、このようなものは知りません!
とにかく、可能であれば詳細な例とともに、これを行うための最良の方法に関する推奨事項をいただければ幸いです。