SED-Befehl wird nicht vom Bash-Skript ausgeführt
Ich habe ein Bash-Skript geschrieben, das (unter anderem) einen sed-Befehl für eine Datei aufruft, um das Suchen / Ersetzen von 2 verschiedenen Zeichenfolgen abzuschließen.
Das Problem ist, dass ich nach dem Ausführen des Skripts die Dateien überprüfe und nichts aktualisiert wurde. Wenn ich jedoch die Befehle ausführe, die gerade erstellt werden (ich gebe sie trotzdem als Ausgabe aus), funktionieren sie.
Zum Beispiel habe ich im Skript:
echo "/usr/local/bin/sed -i -e 's/${String1}/${String1R}/g;s/\/${String2}\//\/${String2R}\//g' ${ROOT_DIR}/data/file.sql"
/usr/local/bin/sed -i -e 's/${String1}/${String1R}/g;s/\/${String2}\//\/${TString2R}\//g' ${ROOT_DIR}/data/file.sql
Durch Ausführen des Skripts wird file.sql nicht geändert. Wenn ich jedoch den Befehl ausführe, der auf der Konsole ausgegeben wird, z. / usr / local / bin / sed -i -es / dateiname1 / dateiname2 / g; s // path_substring1 /// path_substring2 // g '/path/to/file/file.sql es funktioniert perfekt!