2017-02-08 1 views
0

Ich versuche, einige Aufgaben bei der Arbeit zu automatisieren. Eine davon ist es, einige Aliase auszuführen, von denen einer ein neues Terminal erzeugt, ein XTerm von einem Bash-Terminal. Jetzt, nachdem ich dieses Terminal erstellt habe, müsste ich diesem neuen Terminal einige weitere Befehle geben.Übergabe von Argumenten an ein neu erzeugtes Terminal

Wie kann dies erreicht werden. Eine Methode, die ich mir vorstellen kann, ist die Verwendung von expect-Skripten, um diese Aufgaben zu bewältigen. Würde das funktionieren? Wenn nicht, gibt es Methoden, um Befehle auf dem neuen Terminal auszuführen.

Edit:

Im Skript, das ich diese gefunden ....

execcmd="xterm -sb -sl 5000 -T "'`/usr/bin/hostname -s`.$LOADL_STEP_CLASS'" -e $path run_interactive [email protected] 

Ich denke, das ist derjenige, der die neue xterm laicht aus .. ich einige Befehle in diesem Skript ausführen müssen und dann, was auch immer es auf dem Bildschirm ausspuckt, suche nach einer bestimmten Zeichenfolge wie zum Beispiel "priority-level:", Rest wäre einfach Regex macht den Job für mich, aber ich möchte die Interaktionen mit diesem neuen Xterm automatisieren, die hervorgebracht .

PS: Ich habe keinen straight forward Weg der Argumente zu diesem Terminal während Laich vorbei, ohne mit Skripten, die viele andere Menschen benutzen vermasselt. also kann ich den ursprünglichen Alias ​​nicht ändern, vielleicht schreibe ich einen Wrapper darum herum.

+0

erwartet wird nicht funktionieren, weil es GUIs (wie Xterm) nicht steuern kann. Bitte zeigen Sie den aktuellen Alias ​​an –

+1

Können Sie die Befehle in die Shell-Startup-Dateien einfügen? – tomasz

+0

Ich habe die Frage bearbeitet, bitte schauen Sie noch einmal. – ArunMKumar

Antwort

0

Ist das nicht was die -e *args* Flagge zu xterm für ist? Es wird ausgeführt, was auch immer Sie es dort füttern, also wenn Sie dieses Argument so ändern, dass das Skript oder der Befehl, den es aufruft, auch den zusätzlichen Schritt ausführt, den Sie brauchen, sind Sie fertig. Eine Alternative besteht darin, die xterm-Shell zu einer Login-Shell zu machen, so dass Ihre Shell-Startup-Skripte aufgerufen werden. Dies hat jedoch den Nebeneffekt, dass sie für jede Login-Shell aufgerufen werden, die in Ihrer Umgebung geeignet sein könnte.

+0

Was ich füttern muss, ist nicht ein Befehl oder eine Reihe von Befehlen, sondern eine interaktive Sitzung, in der ich mehr Befehle ausführen und basierend auf ihren Ausgaben andere Befehle ausführen muss. also ein expect-Skript an die Ausführung als Teile von args übergeben würde den Job tun? Auch können Sie etwas mehr auf Ihre Alternative eingehen. – ArunMKumar

Verwandte Themen