Ubuntu-Austria Foren-Übersicht
Portal  •  Forum  •  Profil  •  Suchen   •  Registrieren  •  Einloggen, um private Nachrichten zu lesen  •  Login   

 Wofür stehen die Zeichen $$ im Kommando "ps -p $$ GELÖS

Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
Gast











BeitragVerfasst am: 18.05.2010, 16:15    Wofür stehen die Zeichen $$ im Kommando "ps -p $$ GELÖS Antworten mit ZitatNach oben

Hallo!
user@gnomelynx:~$ ps -p $$ | tail -1 | awk '{ print $4 }'
bash


"ps -p" Prozesse auflisten nach der Prozess ID

"tail -1" Die letzte Zeile ausgeben

"awk '{print$4}'" Nur das 4. Feld ausgeben

Meine Frage:

Wo für steht $$ bzw. was ersetzen die Dollarzeichen?

Warum liefert
user@gnomelynx:~$ ps -p $$
  PID TTY          TIME CMD
 1832 pts/1    00:00:00 bash


immer den Namen der User Shell?

Danke für Eure Antworten.

linuxihno


edit by Admin: Titel geändert.


Zuletzt bearbeitet von Gast am 22.05.2010, 19:43, insgesamt 5-mal bearbeitet


Desktop: anderer

Version: 16.04

Hardware: Notebook

Architektur: 64Bit


Zuletzt bearbeitet von Gast am 22.05.2010, 19:43, insgesamt 5-mal bearbeitet
Online    
Webbutterfly
Administrator



Geschlecht:
Alter: 62
Anmeldungsdatum: 24.06.2006
Beiträge: 6917
Wohnort: Wien 23


austria.gif

BeitragVerfasst am: 18.05.2010, 16:53    (Kein Titel) Antworten mit ZitatNach oben

@linuxinho: Bitte, entweder du lässt dir einen "lesbaren" und "beschreibenden" Titel einfallen, oder lässt es bleiben... so nicht!
Das ist kein Titel sonder eine Befehlszeile...
ps -p $ | tail -1 | awk '{ print $4 }'

Steht auch in der Anleitung wie man Fragen richtig stellt....Punkt 4
Titel geändert.

Admin


Desktop: Gnome-Shell 3.X

Version: 14.04 and 16.04

Hardware: Notebook

Architektur: 64Bit

_________________

European Open Source Center
www.webbutterfly.com

OfflineBenutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen    
Webbutterfly
Administrator



Geschlecht:
Alter: 62
Anmeldungsdatum: 24.06.2006
Beiträge: 6917
Wohnort: Wien 23


austria.gif

BeitragVerfasst am: 18.05.2010, 17:46    (Kein Titel) Antworten mit ZitatNach oben

Hello

Nun, du führst ja nach dem Befehl ps noch zwei weitere aus... die beiden $$ sind für ps die Variablen (Platzhalter) für die Ausgabe der folgenden Befehle
tail -1
awk '{ print $4 }
damit sie dir ps auch anzeigen kann.
Der Befehle wird abgearbeitet und in eine Variable $ übergeben, dann der nächste, der sich die Variable vom vorhergehenden holt... usw.
Zitat:
Warum liefert ....immer den Namen der User Shell?

Nun, es liefert dir die letzte Zeile, Feld 4 vom Aufruf ps -p

(würdest du auch noch einen dritten Befehl anhängen, mussten es $$$ sein... bedingt aber ob das überhaupt möglich ist)

mal einfach erklärt...

NUR... dein Befehl funktioniert so gar nicht... weil ps -p auch noch eine Prozess-ID verlangt um die Prozesse der angegebenen PID anzeigen zu können...
Es ist einfach die die letzte Zeile, Feld 4 der ausgegebenen Fehlermeldung....
Schauer dir mal in Ruhe
man ps

an
ps aux

gibt dir mal sinnvolleres...

EDIT:
Shell-Variablen
BASH Programming - Introduction HOW-TO: Variables


Desktop: Gnome-Shell 3.X

Version: 14.04 and 16.04

Hardware: Notebook

Architektur: 64Bit

_________________

European Open Source Center
www.webbutterfly.com

OfflineBenutzer-Profile anzeigenPrivate Nachricht sendenWebsite dieses Benutzers besuchen    
kappa




Geschlecht:
Alter: 47
Anmeldungsdatum: 26.10.2009
Beiträge: 1466
Wohnort: Wien 10


austria.gif

BeitragVerfasst am: 18.05.2010, 18:54    (Kein Titel) Antworten mit ZitatNach oben

Das $$ ist in der Shell der Platzhalter für die Prozeß-ID des eigenen Prozesses.

Die komplette Zeile hat den Sinn herauszufinden, in welcher Shell ich mich eigentlich befinde, das ist nämlich nicht einfach weil zB $SHELL nicht immer zuverlässig gesetzt wird.

Allerdings eine sehr umständliche Art und Weise ...


Desktop: Gnome 2.X

Version: 10.04

Hardware: Notebook

Architektur: 32Bit
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden    
Gast











BeitragVerfasst am: 18.05.2010, 19:08    (Kein Titel) Antworten mit ZitatNach oben

@Webbutterfly

Zitat:

gibt dir mal sinnvolleres...


Mit allem gebührendem Respekt für Deine Person und Deine Hilfestellung hier im Forum, aber was für mich sinnvoll ist oder auch nicht, diese Entscheidung treffe immer noch ich. Es steht Dir aber frei, die Zensur einzuführen.

Die Frage stellte sich mir beim Durchlesen von

http://www.cyberciti.biz/tips/linux-command-to-gathers-up-information-about-a-linux-system.html

Die Antwort auf meine Frage konnte mir hier gegeben werden (ohne Belehrung).

http://forum.ubuntuusers.de/topic/shell-kommando-ps-p-wofuer-stehen-bzw-was-ers/#post-2493068


Desktop: anderer

Version: 16.04

Hardware: Notebook

Architektur: 64Bit
Online    
kappa




Geschlecht:
Alter: 47
Anmeldungsdatum: 26.10.2009
Beiträge: 1466
Wohnort: Wien 10


austria.gif

BeitragVerfasst am: 18.05.2010, 19:45    (Kein Titel) Antworten mit ZitatNach oben

Hallo, verlasse Dich nicht zu sehr auf solche Konstrukte.

Ich zeig Dir mal ein Gegenbeispiel:

kappa@kappa:~$ ps -p $$ -o comm=
bash
kappa@kappa:~$ echo "Noch billiger: $0"
Noch billiger: bash
kappa@kappa:~$ /bin/sh -c 'ps -p $$ -o comm='
sh
kappa@kappa:~$ /bin/bash -c 'ps -p $$ -o comm='
ps
kappa@kappa:~$ echo "Uups, das zuvor ging in die Hose."
Uups, das zuvor ging in die Hose.
kappa@kappa:~$ /bin/bash -c 'echo $0'
/bin/bash
kappa@kappa:~$ /bin/bash -c 'basename $0'
bash


D.h. basename $0 ist besser als alle Vorschläge zuvor, und ist noch immer nicht (für Paranoiker) ganz sauber.


Desktop: Gnome 2.X

Version: 10.04

Hardware: Notebook

Architektur: 32Bit
OfflineBenutzer-Profile anzeigenPrivate Nachricht senden    
Gast











BeitragVerfasst am: 18.05.2010, 20:28    (Kein Titel) Antworten mit ZitatNach oben

@kappa

Hallo und erstmals DANKE für deine Rückmeldung!

Es geht jetzt nicht speziell um dieses eine Kommando "ps -p$$"

Für mich geht es darum auf der Kommandozeile mal "Sattelfest" zu werden.

Ich konnte für mich selbst herausfinden bzw. habe bereits gewusst
was man mit "tail" und "awk" bewirken kann.

Ich bin aber leider nicht dahinter gekommen das "$$" für die Prozess ID der Shell steht.

Gebe aber zu: Ist aber eigentlich klar wenn immer "bash" zurückgeben wird.

O.K. jetzt weiß ich es und alle die es auch interessiert.

Nochmals, Danke!


Desktop: anderer

Version: 16.04

Hardware: Notebook

Architektur: 64Bit
Online    
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


 Gehe zu:   



Berechtigungen anzeigen


Forensicherheit

1008050158595 Angriffe abgewehrt

Powered by Orion based on phpBB © 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
Alle Zeiten sind GMT + 2 Stunden



[ Page generation time: 0.1327s (PHP: 77% - SQL: 23%) | SQL queries: 55 | GZIP enabled | Debug off ]