Ich habe diese Datei, die ich als ein Prozess verwendet, um Zeichenfolgen während der Bereitstellung zu ersetzen. Die Ausführung erfolgt remote über Fabric-Skript.String ersetzen in Ubuntu Python funktioniert nicht
old_string = '"{}"'.format('$CONFIG_DIR')
new_string = '"{}"'.format('$CONFIG_DIR --logfile /var/www/' + domain_name + '/logs/transmission.log')
run('python deployment/monkey_patch.py /etc/default/transmission-daemon '+ old_string + ' ' + new_string)
Anstatt die alte Zeichenfolge durch die neue Zeichenfolge zu ersetzen, wird die gesamte Datei durch einige ungültige Werte der neuen Zeichenfolge ersetzt.
Ich habe sogar die Datei in mein Windows-env kopiert und genau dieselben Schritte wiederholt und es funktioniert aber auf Ubuntu. Die ganze Zeit bin ich root-Benutzer und sowieso ist es etwas in die Datei schreiben, so ist es nicht Erlaubnis Problem auch.
Ich habe diese Datei für eine andere Zeichenfolge und Datei versucht und es funktioniert.
old_string = 'debian-transmission'
new_string = 'www-data'
run('python deployment/monkey_patch.py /etc/init.d/transmission-daemon '+ old_string + ' ' + new_string)
Ich vermute, es ist etwas, mit dem Dollarzeichen und Fabric-Modul zu tun, aber ich kann nicht genau herauszufinden. Jeder hat Ahnung?