takidoso
Erfahrenes Mitglied
Hallo und Halli,
irgendwie weiß ich nicht genau wie ich es anstellen soll...
Habe quasi 2 Fragen:
1)
Zunächst mal möchte ich mit SED eine Startscript manipulieren dabei sind eine Zeile an der richtigen Stelle hinzuzufügen und das ein oder andere zu löschen.
Es hatte eigentlich sogar schonmal geklappt, wollte ich aber dann einen String der min meinem gesammt script öfters vorkommt in einer Variablen speichern und in dem einen SED befehl unterbringen, garbled mir SED.
hier mein momentaner Code, der nicht funktioniert
hier soll nach einer Zeile die CLASSPATH="./bin" beinhaltet die Zeile CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/log4j-1.2.15.jar" eingefügt werden und andere bestimmte Zeilen gelöscht.
Wenn ich statt der Gänsefüße (") nur Hochkommas (') setze wird mir die Variable log4jLibAddition nicht aufgelöst, jedoch habe ich dann offenbar ein funktionierendes SED-Statement, welches mir natürlich nur wörtlich ${log4jLibAddition} einfügt.
2) Ich frage zwar brav den returnCode ab, jedoch scheine ich nur den Returncode des letzten SED-Statements damit zu bekommen und nicht das erste, welches schief geht.
Gibt es da eine Technik den RC von einem jeden SED-Statement zu bekommen, oder noch besser von dem Gesamtausdruck?
Eine Idee die ich da hätte keine Pipes, sondern lauter Dateien zu verwenden, aber ist das nicht etwas Performancelastig?
Für gute Vorschläge bin ich echt dankbar
Takidoso
irgendwie weiß ich nicht genau wie ich es anstellen soll...
Habe quasi 2 Fragen:
1)
Zunächst mal möchte ich mit SED eine Startscript manipulieren dabei sind eine Zeile an der richtigen Stelle hinzuzufügen und das ein oder andere zu löschen.
Es hatte eigentlich sogar schonmal geklappt, wollte ich aber dann einen String der min meinem gesammt script öfters vorkommt in einer Variablen speichern und in dem einen SED befehl unterbringen, garbled mir SED.
hier mein momentaner Code, der nicht funktioniert
Code:
...
typeset log4jLibAddition=' CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/log4j-1.2.15.jar"'
sed "/CLASSPATH=\"\.\/bin\"/a\
${log4jLibAddition}" "$startScript" \
| sed '/# Sonstige benötigte Jar.s von Fremdherstellern/d' \
| sed '/JAVAPROPS="${JAVAPROPS} -Djava.util.logging.config.file/d' \
| sed '/${log4jLibAddition}/d' > "$startScript.$$"
rc=$?
if [ $rc -eq 0 ]
then
mv "$startScript.$$" "$startScript"
rc=$?
fi
...
hier soll nach einer Zeile die CLASSPATH="./bin" beinhaltet die Zeile CLASSPATH="${CLASSPATH}:${APP_HOME}/lib/log4j-1.2.15.jar" eingefügt werden und andere bestimmte Zeilen gelöscht.
Wenn ich statt der Gänsefüße (") nur Hochkommas (') setze wird mir die Variable log4jLibAddition nicht aufgelöst, jedoch habe ich dann offenbar ein funktionierendes SED-Statement, welches mir natürlich nur wörtlich ${log4jLibAddition} einfügt.
2) Ich frage zwar brav den returnCode ab, jedoch scheine ich nur den Returncode des letzten SED-Statements damit zu bekommen und nicht das erste, welches schief geht.
Gibt es da eine Technik den RC von einem jeden SED-Statement zu bekommen, oder noch besser von dem Gesamtausdruck?
Eine Idee die ich da hätte keine Pipes, sondern lauter Dateien zu verwenden, aber ist das nicht etwas Performancelastig?
Für gute Vorschläge bin ich echt dankbar
Takidoso