Итак, я пытаюсь автоматизировать настройку экземпляра arch linux с помощью скрипта Python Fabric вот так:
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()
из-за знака $ в $arch
. Эта функция ткани не работает в строке 2, потому что $, за которым следует строка, распознается тканью как переменная конфигурации. Но я на самом деле хочу, чтобы $arch понимался как литерал в вызове
echo 'echo "Server = http://repo.archlinux.fr/$arch" >> /etc/pacman.conf'
в оболочке bash.
Как мне «убежать» от этой причуды ткани и назначить $arch литералом для записи в мой файл pacman.conf ?