そこで、次のような Python ファブリック スクリプトを使用して、arch Linux インスタンスのセットアップを自動化しようとしています。
from fabric.api import run, sudo
def server_setup_communityrepo():
run('echo \'echo "[archlinuxfr]" >> /etc/pacman.conf\' | sudo -s')
run('echo \'echo "Server = http://repo.archlinux.fr/$arch" >> /etc/pacman.conf\' | sudo -s')
run('echo \'echo " " >> /etc/pacman.conf\' | sudo -s')
sudo('pacman -Syy yaourt --noconfirm')
run()
の$ 記号が原因で、2 回目の呼び出しで問題が発生し$arch
ます。$ に続く文字列が構成変数としてファブリックによって認識されるため、このファブリック関数は 2 行目で失敗します。しかし、私は実際には $arch がリテラルとして理解されることを望んでいます
echo 'echo "Server = http://repo.archlinux.fr/$arch" >> /etc/pacman.conf'
bash シェルで呼び出します。
このファブリックの癖から「脱出」して、$arch を pacman.conf ファイルに書き込むリテラルとして指定するにはどうすればよいですか?