Veröffentlicht 20. November 200618 j hallo kann ich den befehl "exit" das die konsole geschlossen wird auch in einem shellscript benutzen? ich habs einfach mal probiert und ein script mit nur echo geschrieben aber da passiert leider nichts... :-( wie funktioniert das, das muss doch irgendwie funktionieren?
20. November 200618 j Hallo, mit exit wird das Shellskript geschlossen. Wenn die Konsole geschlossen werden soll dann sollte es mit logout funktionieren. Frank
20. November 200618 j Hi, Hallo, mit exit wird das Shellskript geschlossen. Wenn die Konsole geschlossen werden soll dann sollte es mit logout funktionieren. Frank es wird eine Shell aufgerufen, wenn ein Skript gestartet wird und diese wird in der Tat geschlossen. Aber das wirkt sich nicht auf die Shell aus, von der das Skript aufgerufen wurden, und daher hat exit keinerlei Einfluss. Damit das nicht passiert, kann exec benutzt werden: exec ./skript.sh Das hat zur Folge, dass keine neue Shell aufgerufen wird, sondern die alte quasi ersetz wird. Dann hat auch "exit" darauf Auswirkung.
20. November 200618 j ja also ich hab einfach eine datei names "tschüss" in "/usr/bin" angelegt das wenn ich jetz egal wo in der konsole einfach nur "tschüss" eingebe die konsole gschlossen wird....wie kann ich das verwirklichen?
20. November 200618 j Hi, weiss zwar gar nicht, wozu das gut sein soll, aber so ohne Weiteres wirds nicht gehen. Mein Spieltrieb hat mich dann aber doch zu diesem Werk geführt: #!/bin/sh SHELL=`ps -t "\`tty\`" -o pid` SHELL=`echo $SHELL | cut -d ' ' -f2` echo "Und tschuess..." sleep 2 kill -9 $SHELL Das ist zwar ziemlich dirty, aber nun gut. Es soll auch sinnlose Dinge geben.
21. November 200618 j shell skript? tut es nicht auch set tschüss=/usr/bin/exit oder wo auch immer exit liegt
21. November 200618 j danke mal für das script. kannst du die zeilen noch erklären? wie funktioniert das mit dem set... einfach in der konsole eingeben oder?
21. November 200618 j shell skript? tut es nicht auch set tschüss=/usr/bin/exit oder wo auch immer exit liegt Ne, weil exit ein builtin-Kommando der Shell ist. Bekommt man ganz einfach mit man exit heraus. Der Schlüssel zu dem Ganzen ist, dass du herausfinden musst, auf welcher Konsole du dich befindest. Das bekommst du mit "tty" heraus. Anschließend musst du die PID der Shell bestimmten und diese letzten Endes killen. Wie gesagt, unsauber, aber funktioniert erstmal.
22. November 200618 j Warum man zu faul ist exit einzugeben kann ich ja verstehen, wenn einem die Zeichen zu viel zu schreiben sind, ich habe deshalb einen Alias e erstellt der einen exit bewirkt; Warum man aber statt 'exit' (4 Buchstaben) 'tschüss' (6 Buchstaben und ein oftmals in der Shell unangenehmes Umlaut) benutzen will ist mir auch nicht ganz klar, aber bitte Also versuchs mal so - das sollte der einfachste Weg sein: echo "alias tschüss=\"exit\"" >> ~/.alias && . ~/.alias Erklärung: Dieser Befehlt bewirkt, dass in der .alias Datei Deines Users am Ende ein Alias tschüss hinzugefügt wird und dieser bootfest nutzbar ist. Mit . ~/.alias stellst Du diesen Alias Deiner aktuellen Shell zur Verfügung. Nun sollte sich Dein Terminal mit dem Befehl tschüss beenden lassen.
22. November 200618 j Warum man zu faul ist exit einzugeben kann ich ja verstehen, wenn einem die Zeichen zu viel zu schreiben sind, ich habe deshalb einen Alias e erstellt der einen exit bewirkt; Warum man aber statt 'exit' (4 Buchstaben) 'tschüss' (6 Buchstaben und ein oftmals in der Shell unangenehmes Umlaut) benutzen will ist mir auch nicht ganz klar, aber bitte ich bin mir nicht ganz sicher, aber ^D würde es ja auch tun, nicht? das hat nicht 6 buchstaben, nicht 4, nein, nur einen - bzw- ist sowieso ein steuerzeichen s'Amsteö
22. November 200618 j oooh ooooh...na immerhin sind das zwei Tastendrucke (STRG+D), ne quatsch hast natürlich recht...aber ich als Grobmotoriker hab es auch schonmal hingebracht STRG+D zu drücken und das zu überhastet bzw. zu oft (2x) und dann war gleich das zweite Terminalfenster auch geschlossen *gg
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.