Lassen Sie mich mit dem beginnen, was ich versuche zu tun.
Ich habe eine sed-Anweisung, um eine bestimmte Zeile zu finden und dann die Zeile darunter zu ändern. Dazu lösche ich zuerst die darunter liegende Zeile und füge die gewünschte Zeile an.Ausführen von sed durch eine Funktion, die nicht abgeschlossenes Substitutionsmuster liefert
Hier findet der erste Ausdruck eine Zeile mit Ausdruck in $ rootline und löscht dann die nächste Zeile. Und Ausdruck 2 fügt die Zeile hinzu, die ich nach der Zeile mit $ rootline hinzufügen möchte.
Früher hatte ich das in einer separaten .sh-Datei und als ich die Datei mit sudo anrief (mit sudo für eine andere wichtige Operation in der Datei), funktionierte es perfekt.
Jetzt versuche ich es in eine Funktion und rufen Sie es durch die gleiche .sh-Datei. Um die Funktion mit sudo aufzurufen, verwende ich diese answer. Alles scheint in Bezug auf den sudo Teil der Funktion zu funktionieren gut, aber wenn es um den oben genannten sed Betrieb kommt, erhalte ich die folgenden
sed: 1: "/root ALL=/ {N;s/
.*//;}
": unterminated substitute pattern #$rootline='root ALL='
Jeden Hinweis auf, warum ich diese Störung erhalten?
HINWEIS: Ich arbeite Mac OS X