2017-03-12 3 views
0

Ich möchte einen Bildpfad innerhalb aller HTML-Dateien rekursiv in allen Ordnern ersetzen.Sed funktioniert nicht innerhalb der Bash für Schleife

#!/bin/bash 

for image in images/*.png 
do 

    echo "sed -i .bak -e 's|$image|image2/$image|g' app/www/*.html" 
    sed -i .bak -e 's|$image|image2/$image|g' app/www/*.html 

done 

Das Seltsame ist, dass wenn ich den Befehl manuell ausführen:

sed -i .bak -e 's|images/add.png|image2/add.png|g' app/www/*.html 

funktioniert alles einwandfrei und der Weg ist ablöst. Innerhalb der for-Schleife funktioniert dies jedoch nicht, während der Echoteil die gleiche Zeile wie oben erwähnt wiedergibt.

+0

auf die Antwort Basierend es könnte ein Duplikat sein. Aber war die Frage selbst auch ein Duplikat? –

Antwort

2

Sie müssen verwenden „und nicht‚ Ansonsten ist das $ Bild nicht

bearbeiten ausgewertet: Es funktioniert im Echo, weil die‘umgeben String von umgeben ist“;)

+0

Das reparierte es danke! –

Verwandte Themen