0
これは重複した質問であるかどうかはわかりませんが、私の問題の解決策は実際には見つかりません。SSH for Bash Script(SSH-Agent)
問題は、次のコマンドを実行できないことです。
#!/bin/bash
SCRIPT1="cd /path/to/project;"
SCRIPT2="git pull;"
ssh "production" ${SCRIPT1} "ssh-agent /bin/bash; ssh-add ~/.ssh/my_bitbucket_key;" ${SCRIPT2}
まだbashとsshの初心者ですので、これが正しい方法であるかどうかもわかりません。
あなたが私を助けてくれることを願っています。ありがとう!
は、他の誰かのためにコマンドの作業を行いますあなたのためにではありませんか、それとも誰のためにも働いたことはありませんか?それだけではうまくいかない場合、どのようなエラーメッセージが表示されますか?誰かのために働いていない場合、私は$ SCRIPT1と$ SCRIPT2の両方をsshコマンドの二重引用符の中に入れてみます。 – Mort
最初の行を '#!/ bin/bash -vx'に変更すると、各cmdで変数の置換が行われるようになります。私はあなたが問題を見ると思う。すべての文字列が '+'で始まる行に一重引用符で囲まれているのを混同しないでください。これは、デバッガが入力を「正規化」する方法です。がんばろう。 – shellter
これとは別に、リモートコマンドを変数に入れることは、あいまいな習慣です。おそらく 'prod 'のようなリモートシェルでその引数を実行する関数を作成するかもしれません。cd/path/to/project; git pull'ここで' prod'は 'prod(){ssh production ssh-agent bash -c "ssh-add〜/ .ssh/my_bitbucket_key; $ @ ";}' – tripleee