リモートサーバーでいくつかのコマンドを実行しようとしています。そこにいくつかのbashファイルを調達する必要があります。残念ながら、fabric は (突然、最近?) を使用し始め/bin/sh
たようで、スクリプトで bash 構文を使用しているため、機能しなくなりました。私はこれを見つけました:
shell が True (デフォルト) の場合、run はシェル インタープリターを介して指定されたコマンド文字列を実行します。シェル インタープリターの値は、env.shell を設定することで制御できます (デフォルトは /bin/bash -l -c "". ) shell が True の場合、コマンド内の二重引用符 (") またはドル記号 ($) 文字は自動的にエスケープされます。
env.shell を変更していないので、fabric が を使い始めた理由がわかりませんsh
。いずれにせよ、私はそれを上書きしていますが、それでもうまくいきません:
env.shell = "/bin/bash"
何が原因でしょうか? ファブリックを強制的に使用するにはどうすればよいbash
ですか?