hi, ich versuche herauszubekommen auf welchem tty das skript ausgefuehrt wird. eigentlich funzt w | awk '{print $2 $8}' | grep w | sed -e 's/w//' sehr gut. nur wenn ich das ins folgende skript einbaue laeuft's nicht: --- SKRIPT ANFANG #! /bin/sh i=`w | awk '{print $2 $8}' | grep w | sed -e 's/w//'` echo $i --- SKRIPT ENDE in i sollte doch das ergebnis des ausdruckt innerhalb von `` stehen?? irgendwas muss ich da flasch machen aber ich sehs einfach nicht... ciao sascha -- Sascha Andres linux@programmers-world.com http://www.programmers-world.com
hi, On Mon, Feb 18, 2002 at 12:07:53PM +0100, Sascha Andres wrote:
--- SKRIPT ANFANG #! /bin/sh i=`w | awk '{print $2 $8}' | grep w | sed -e 's/w//'` echo $i --- SKRIPT ENDE inzwischen hab ich geblickt warum. weil da ja eine sub shell geoeffnet wird, und diese beim w angezeigt wird ...
gibt's nocht ne elegantere loesung das aktuelle terminal herauszufinden ? ciao sascha -- Sascha Andres linux@programmers-world.com http://www.programmers-world.com
* Sascha Andres schrieb am 18.Feb.2002:
ich versuche herauszubekommen auf welchem tty das skript ausgefuehrt wird. eigentlich funzt w | awk '{print $2 $8}' | grep w | sed -e 's/w//' sehr gut. nur wenn ich das ins folgende skript einbaue
was soll das grep w bewirken? Nimm doch einfach ps. Bernd -- Bitte die Etikette beachten: http://www.suse-etikette.de.vu/etikette.html Bitte Realnamen angeben, kein Vollquoting, kein Html, PGP oder Visitenkarten benutzen. Signatur mit "-- " abtrennen, bei Antworten "Re: " voranstellen, sonst nichts. |Zufallssignatur 4
Sascha Andres wrote:
ich versuche herauszubekommen auf welchem tty das skript ausgefuehrt wird. eigentlich funzt w | awk '{print $2 $8}' | grep w | sed -e 's/w//' sehr gut.
Da gibt's schon zwei mögliche Probleme, auch wenn die nicht immer auftreten. Zum einen werden so alle auf irgendwelchen Terminals gerade laufenden Kommandos mit einem "w" im Namen gefunden. Das läßt sich z.T. noch lösen, z.B. läßt sich das ganze Filtern mit einem awk-Aufruf zusammenfassen: w | awk '$8 == "w" { print $2; }' So wird von vornherein zumindest nur die zweite Spalte von allen Zeilen ausgegeben, bei denen die achte Spalte nur ein "w" enthält. Leider ist das Ausgabeformat von w etwas merkwürdig -- unter Umständen stehen irgendwo Leerzeichen drin, so daß das Kommando nicht mehr in der achten Spalte steht. Da wird's komplizierter.
nur wenn ich das ins folgende skript einbaue laeuft's nicht:
In dem Fall kommt noch dazu, daß das Kommando, das in dem jeweiligen Terminal gerade ausgeführt wird, nicht (zumindest nicht in erster Linie) w ist, sondern das Skript. Dein Skript sucht jetzt also nach dem falschen Kommando. Am einfachsten läßt sich Dein Problem mit dem Kommando tty lösen, das ist genau dafür da, den Namen des aktuellen Terminals auszugeben. Eilert -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org http://www.informatik.uni-bremen.de/~eilert/
hi, On Mon, Feb 18, 2002 at 12:45:13PM +0100, Eilert Brinkmann wrote:
Am einfachsten läßt sich Dein Problem mit dem Kommando tty lösen, das ist genau dafür da, den Namen des aktuellen Terminals auszugeben. man lernt nie aus. das kommando tty war mir unbekannt, ist aber die beste loesung ;)
ciao sascha -- Sascha Andres linux@programmers-world.com http://www.programmers-world.com
participants (3)
-
B.Brodesser@t-online.de
-
Eilert Brinkmann
-
Sascha Andres