シェルスクリプトを使用してリモートホストPATHにフォルダを追加するには?

シェルスクリプトを使用してリモートホストPATHにフォルダを追加するには?

~/binローカルフォルダをリモートホストに同期するプロセスを自動化し、そのフォルダをリモートシェルパスに追加したいと思います。同期部分を完了しましたが、フォルダをリモートシェルに自動的に追加する方法がわかりません$PATH

これにより、常にローカルコンピュータでシェルスクリプトを操作でき、新しいコンピュータに接続して作業を開始する必要がある場合は、ローカルスクリプトを実行して〜/ binフォルダをリモートコンピュータに同期できます。その後、常にリモートホスト上でスクリプトを簡単に実行できます。

その後、次回のログイン時に自分の~/binパスがリモートホストのパスに追加され、正しく設定されるようにするにはどうすればよいですか。$PATH$PATH

これはシェルスクリプトで自動的に実行されることを望みます。

編集:を同期したくありませんが、.bashrc必要に応じてシェルスクリプトを使用して最後にいくつかのコンテンツを追加して既存のファイルに追加できます。

答え1

1つの可能なアプローチは、bashrcを同期する代わりにbashrcの末尾に追加することです。

echo "PATH=\$PATH:~/bin" >> ~/.bashrc

これにより、PATH変数に〜/ binが追加されます。

リモートホストからこれを取得するには、まずsshを呼び出すだけです。ホストが多い場合は、forループを使用できます。

for host in host1 host2 host3;do
    ssh user@$host echo "PATH=\$PATH:~/bin" >> ~/.bashrc
done

関連情報