2つのシステムがあり、同じディレクトリ構造を持っています。ローカルシステムで複数のコマンドを実行し、リモートシステムでも同じコマンドを実行したいと思います。
ワイルドカードを使用するので、パッケージの新しいバージョンがあるときにbashスクリプトを再編集する必要はありません!
私のbashスクリプトには次の行があります。
varWheelsDir="/tmp/wheels"
set -x
# Install local
pip3 install --force-reinstall --user "${varWheelsDir}/bbw"*
# Install remote
ssh -t admin@otherhost "pip3 install --user '${varWheelsDir}/bbw$*'"
これも拡張されました
+ pip3 install --user /tmp/wheels/bbw-2.10.0-py3-none-any.whl
+ ssh -t admin@otherhost 'pip3 install --user '\''/tmp/wheels/bbw'\'''
明らかに、SSHラインの拡張は機能しません。
どのように入力するのか知っていますssh -t
ベストアンサー1
明らかに、SSHラインの拡張は機能しません。
この文の文法的問題を取り除いて、拡張が期待どおりに機能しないことを除いて、拡張が「機能しない」ことは明らかではありません。拡張方法と期待する内容を含めると役に立ちます。
SSHクライアントではなく、リモートホストで拡張が行われることを意味しているようです。この場合、ローカルシェルに渡された引数をエスケープしますが、リモート拡張を許可するには引用符も変更する必要があります。
ssh -t admin@otherhost "pip3 install --user \"\${varWheelsDir}/bbw\*\""