2016-03-19 3 views
-1

Ich versuche ein .command-Skript zu erstellen, das ein anderes Skript aufruft. Also, wenn ich auf dieses Skript doppelklicke, sollte es ein anderes starten.Wie öffne ich Skripte mit Doppelklick, ohne dass sie sich abmelden, nachdem alle Befehle ausgeführt wurden?

Immer, wenn ich auf diese Datei doppelklicke, ruft sie dieses Skript ohne Probleme auf. Aber nachdem alle Befehle ausgeführt wurden, meldet es sich ab.

logout 

[Process completed] 

Ich habe auch bemerkt dies, wenn i-Datei öffnen .command:

~/name.command ; exit;

Ich habe mit Aliase gemacht Menü So zum Beispiel, wenn Benutzer in "Namen" in der Konsole, es öffnet Name.sh.

Gibt es eine Möglichkeit, das Skript mit Doppelklick zu starten? Das Skript wird also nicht abgemeldet, nachdem alle Befehle ausgeführt wurden. Es schließt das Fenster nicht, es meldet sich nur einfach aus dem Fenster ab, und dann kann ich nicht mehr auf die Shell zugreifen.

+0

Wie wäre es mit 'read -n 1 -s' am Ende des Skripts? So etwas sollte vor dem Beenden auf einen Tastendruck warten. – Droppy

+0

Ja, es funktioniert, aber ich habe Menü-Skript mit Aliasen gemacht, also wann immer Benutzer "name" eingibt führt es "name.sh" aus, aber das Skript wird auf Tastendruck beendet. – ShellRox

+0

Können Sie ein [MCVE] (http://stackoverflow.com/help/mcve) als Beispiel angeben? Ich weiß nicht genau, was genau du beschreibst, und ein Beispiel sollte die Dinge klären. – ghoti

Antwort

0

Afaik OS X wird nur das geöffnete Terminal, wenn der Befehl Erfolge schließen, so dass das Hinzufügen exit 1 zu Ihrer Datei den Trick tun sollten:

if something; 
    stuff1 
else; 
    stuff2 
fi 
# Make sure the exit with error to prevent terminal closing 
exit 1 
+0

Nun habe ich versucht, "Exit 1" hinzuzufügen, aber es abgemeldet, aber ich will auch nicht Skript Fehlermeldungen anzeigen. Ich würde versuchen, während (wahre) Schleife, aber ich brauche einen Befehl, der überhaupt nichts zeigen wird. – ShellRox

+0

Es ist konfigurierbar - für das Terminal können Sie wählen, ob Sie nicht schließen, bis Sie das Fenster schließen, das Fenster schließen und das Fenster immer schließen. –

0

Wenn ich gut Ihr Problem zu verstehen ...

Don Verwenden Sie source nicht, um Ihre Unterbefehle zu starten; source Führen Sie in der aktuellen Shell die Befehle im angegebenen Skript aus, sodass, wenn eine davon verwendet, Ihre aktuelle Shell beendet wird. Starten Sie es einfach als einen einfachen Befehl, d. H. /bin/name.sh, die ausreichen sollte (wenn das Skript lesbar und ausführbar ist).

+0

Nun, die ausführbare Datei, die ich gemacht habe, ist unter .command Erweiterung, Also, wann immer ich es doppelklicke, Es öffnet sich ein anderes Skript (name.sh zum Beispiel), Aber wenn ich manuell name.sh vom Terminal öffnen, Es wird nicht abmelden . – ShellRox

Verwandte Themen