PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell Script Nachhilfe...



tobiasbeil
12.05.05, 11:41
hi all,

ich will nur mal wissen wie man in nem shell script
ein anderes shell script insoweit manipulieren und ändern
kann, als dass man die letzte zeile löscht, um dann zwei
weitere zeilen hinzuzufügen.

also, ich will ein script, das vom "einanderesscript.sh" =


#!/bin/bash
bla bla
exit 0

wie hier abgebildet die letzte zeile "exit 0" löscht, damit ich
"echo noch ein befehl dazwischen schieben >> einanderesscript.sh"
"echo exit 0 >> einanderesscript.sh"
zwischenrein schreiben kann.

denn, ich will per script das script "einanderesscript.sh" um einen befehl erweitern,
damit "einanderescript.sh" am ende so aussieht:



#!/bin/bash
bla bla
noch ein befehl dazwischen schieben
exit 0


das muss doch irgendwie mit cat oder grep oder kombination gehen ?

Danke im vorraus.

tschloss
12.05.05, 11:49
Die letzte Zeile wirst du z.B. mit "head" los.
Oder mit "egrep -v '$exit 0'" (-v kejhrt grep um = nur die Zeilen, die Ausdruck NICHT enhalten).
Und dann per ">>" die Zusatzzeilen anhängen.

Oder Du nimmst sed und tauschst "exit 0" gegen "blabla2 \nexit0" aus.

Greetz
Thomas

tobiasbeil
12.05.05, 13:02
danke.

bei mir funktionierts aber ohne Dollarzeichen, also
"egrep -v 'exit 0' einanderesscript.sh"
"echo etc pp >> einanderesscript.sh"
...

:)

tobiasbeil
13.05.05, 13:29
hi junx,

mein ftp script läuft nun, aber ich habe es per ssh rüberkopiert
und gestartet. und anscheinend hat der server den script-prozess
terminiert sowie ich PuTTy beendet habe.
Ich logge mich aber fast immer von meinem Thinkpad mit ssh an
den server, da ich kein bock habe mir im serverraum den arsch
abzufrieren (zu gut klimatisiert, zu laut).

wie stell ich das denn ein dass der/ein prozess den ich starte
im hintergrund läuft und erst bei voller abarbeitung terminiert
und nicht schon bei trennung der ssh verbindung.
es hängt mit den terminals oder den pty's zusammen, aber ich
weiss nicht wie ichs verhindern/umgehen kann.

ich habe neben dem putty auch das cygwin ssh drauf,
falls spezielle parameter gebraucht werden.

Danke im vorraus.

tschloss
13.05.05, 13:56
danke.

bei mir funktionierts aber ohne Dollarzeichen, also
"egrep -v 'exit 0' einanderesscript.sh"
"echo etc pp >> einanderesscript.sh"
...

:)

OOps, wollte schriebn "^exit 0", "^" für Zeilenanfang, "$" ist Zeilenende :o

pibi
13.05.05, 14:03
wie stell ich das denn ein dass der/ein prozess den ich starte
im hintergrund läuft und erst bei voller abarbeitung terminiert
und nicht schon bei trennung der ssh verbindung.Blaettere mal durch "man nohup" bzw. "man screen", wobei ich letzteres empfehlen wuerde.

Gruss Pit.

tobiasbeil
13.05.05, 14:19
Blaettere mal durch "man nohup" bzw. "man screen", wobei ich letzteres empfehlen wuerde.

Gruss Pit.

ich kenne screen, habe es in erwägung gezogen,
aber das gibt es nicht auf der AIX maschine ;)
leider wird screen nicht einmal per "Linux Toolbox for AIX" mitinstalliert.

probiere nohup aus....

danke.

orion
14.05.05, 23:37
Reicht es nicht wenn man einfach "befehl &" ausführt? So schiebt man doch einen Prozess in den HIntergrund.

fuffy
15.05.05, 01:19
Hi!


Reicht es nicht wenn man einfach "befehl &" ausführt? So schiebt man doch einen Prozess in den HIntergrund.
Nicht, wenn z.B. die Shell beim Logout ein SIGHUP an alle gestarteten Prozesse schickt. ;)

Gruß
fuffy