OVH Cloud OVH Cloud

scrip shell

13 réponses
Avatar
franck
Bonjour,

Est ce que quelqu'un peut me dire ce fait précisément cette ligne:
USER_WHO_OWNS_THE_X_SESSION=$(w -h | awk '/:0\.0/ {print $1;exit}')

Merci

Franck

10 réponses

1 2
Avatar
Rakotomandimby
franck wrote:
Est ce que quelqu'un peut me dire ce fait précisément cette ligne:
USER_WHO_OWNS_THE_X_SESSION=$(w -h | awk '/:0.0/ {print $1;exit}')
Tu fais :

w -h | awk '/:0.0/ {print $1;exit}'

cela dit , chez moi ça fait que dalle.
sinon , fais juste
w
puis tu verra ce que donne la commande "w" .
c'est la commande la plus courte que j'ai encore jamais vu sous linux .
une seule lettre ... arf ... trop fort.
--
http://mrakotom.free.fr

Avatar
J. Mayer
On Sun, 28 Sep 2003 15:39:48 +0200, franck wrote:

Bonjour,

Est ce que quelqu'un peut me dire ce fait précisément cette ligne:
USER_WHO_OWNS_THE_X_SESSION=$(w -h | awk '/:0.0/ {print $1;exit}')

Merci

Franck


Comme le suggère le nom de la variable,
celà affecte le nom du user qui a lancé le server X (à la main)
à la variable USER_WHO_OWNS_THE_X_SESSION
Si le serveur a été lancé de façon automatique, cette variable restera
vide.

Avatar
Bertrand Masius
Bonjour,

Le Sun, 28 Sep 2003 15:49:00 +0200, Rakotomandimby a

...puis tu verra ce que donne la commande "w" .
c'est la commande la plus courte que j'ai encore jamais vu sous linux .
une seule lettre ... arf ... trop fort.
man w :


w - Show who is logged on and what they are doing.

La ligne en question affecte donc à la variable le nom de l'utilisateur
qui a lancé X sur :0.0, vide sinon.
--
"Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément."

(Nicolas Boileau, l'Art poétique)

Avatar
TiChou
Dans l'article news:,
franck écrivait :

Bonjour,


Bonjour,

Est ce que quelqu'un peut me dire ce fait précisément cette ligne:
USER_WHO_OWNS_THE_X_SESSION=$(w -h | awk '/:0.0/ {print $1;exit}')


Mettre dans la variable USER_WHO_OWNS_THE_X_SESSION le résultat de ce qu'il
y a dans $().

Le résultat de w -h | awk '/:0.0/ {print $1;exit}' est :

w -h : on affiche (-h = sans les en-têtes de la commande) tous les
utilisateurs loggés sur le système (1er champ) avec des informations utiles
comme le terminal utilisé (2ème champ), le host à partir duquel la personne
s'est loggé (3ème champ), etc.

| : le pipe renvoit la sortie de la commande précédente (w -h) vers l'entrée
de la commande qui suivante.

awk '/:0.0/ {print $1;exit}' : awk intercepte sur son entrée (donc ce qui
sort de la commande w) toutes les lignes qui matchent ":0.0" (que l'on
retrouve généralement dans le 3ème champ de la commande w), print $1 affiche
le premier champ de la ligne interceptée, donc ici l'utilisateur donné par
la commande w, et exit interrompt la commande aussitot qu'une première ligne
ait été matchée.

":0.0" signifie première console du serveur X et écran 0 de cette console.

Donc, comme l'a souligné J. Mayer, dans la variable
USER_WHO_OWNS_THE_X_SESSION on aura l'utilisateur unique qui utilise la
session X sur la console 0

--
TiChou

Avatar
Daniel Déchelotte

| > USER_WHO_OWNS_THE_X_SESSION=$(w -h | awk '/:0.0/ {print $1;exit}')
|
| Comme le suggère le nom de la variable,
| celà affecte le nom du user qui a lancé le server X (à la main)
| à la variable USER_WHO_OWNS_THE_X_SESSION
| Si le serveur a été lancé de façon automatique, cette variable restera
| vide.

Ah, zut. chezmoicamarche, pourtant, avec Login.app qui lance X et qui
m'authentifie.

Apres essais, il faut avoir un shell ouvert depuis la session graphique.
Pas d'xterm ouvert => le nom n'apparait pas dans `w`. Un xterm ouvert par
root => la variable peut contenir "root" et non l'utilisateur legitime !
Bon, il faudrait vraiment trouver quelque chose de plus robuste...

En attendant, Franck, tu peux mettre
USER_WHO_OWNS_THE_X_SESSION=ton_login
a la place de
USER_WHO_OWNS_THE_X_SESSION=$(w -h | awk '/:0.0/ {print $1;exit}')
Ca va lancer flphoto toujours sous ton identite, meme si, eventuellement,
tu n'es pas loggue. En gros, ce n'est acceptable que si c'est ta machine
perso (et encore).

Je demande sur fr.comp.applications.x11 s'il y a un moyen de faire ca
proprement.

Daniel
--
http://yo.dan.free.fr/
Avatar
Jean-Francois Billaud
scripsit Rakotomandimby :

une seule lettre ... arf ... trop fort.


:

Avatar
Christophe PEREZ
Le Sun, 28 Sep 2003 12:43:17 -0400, Daniel Déchelotte a écrit:

Je demande sur fr.comp.applications.x11 s'il y a un moyen de faire ca
proprement.


Et pourquoi pas :
if [ -n "$DISPLAY" ]; then
/usr/bin/gqview&
fi
?

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
J. Mayer
On Sun, 28 Sep 2003 12:43:17 -0400, Daniel Déchelotte wrote:


| > USER_WHO_OWNS_THE_X_SESSION=$(w -h | awk '/:0.0/ {print $1;exit}')
|
| Comme le suggère le nom de la variable,
| celà affecte le nom du user qui a lancé le server X (à la main)
| à la variable USER_WHO_OWNS_THE_X_SESSION
| Si le serveur a été lancé de façon automatique, cette variable restera
| vide.

Ah, zut. chezmoicamarche, pourtant, avec Login.app qui lance X et qui
m'authentifie.

J'ai fait une déduction trop rapide d'après ce que je vois chez moi,

alors:
w -h ne me renvoie aucune ligne avec :0.0 dedans...
Pourtant, j'ai plein de xterm d'ouverts !

Je demande sur fr.comp.applications.x11 s'il y a un moyen de faire ca
proprement.


Oui, ils doivent être plus au courant :=)

Avatar
Daniel Déchelotte

| Le Sun, 28 Sep 2003 12:43:17 -0400, Daniel Déchelotte a écrit:
|
| Et pourquoi pas :
| if [ -n "$DISPLAY" ]; then
| /usr/bin/gqview&
| fi
| ?

Parce que le script sera execute via hotplug. DISPLAY n'est pas defini
dans l'environnement d'execution et on le suppose a ":0". Reste a savoir
qui "possede" le serveur X, qui est loggue.

Le debut du fil est ici : .

Daniel
--
http://yo.dan.free.fr/
Avatar
Christophe PEREZ
Le Sun, 28 Sep 2003 15:49:06 -0400, Daniel Déchelotte a écrit:

Parce que le script sera execute via hotplug. DISPLAY n'est pas defini
dans l'environnement d'execution et on le suppose a ":0". Reste a savoir
qui "possede" le serveur X, qui est loggue.


Ah Bien !
Je m'étais bien douté qu'il y avait une subtilité ;-)

Le debut du fil est ici : .


Ah ben ça, fallait le savoir :-)
Je n'avais pas suivi ce fil.
Désolé.

--
Christophe PEREZ
Écrivez moi sans _faute !

1 2