web-dev-qa-db-fra.com

Envoi d'un message via le terminal à un autre utilisateur connecté Programmation BASH

Avez-vous des suggestions pour écrire un script qui détecte si l'utilisateur spécifié au premier paramètre du script est enregistré?

Si vous êtes connecté, offrez-lui la possibilité d'écrire un message à l'utilisateur. Par la suite, comme le message envoyé se verra offrir la possibilité d'écrire un autre rapport ou de terminer le travail du script.

Dans le cas où l'utilisateur n'est pas connecté et le message "" est inconnu ...

Merci.

21
user3012382

"écrire" est l'une des solutions. Exécuter la commande who

who

la sortie sera quelque chose comme

nand   pts/1        2013-11-20 11:59 (:0)
nand   pts/7        2013-11-20 13:09 (:0)

Vous pouvez maintenant envoyer un message à l'utilisateur "nand" sur pts/1 en utilisant write as

write nand pts/1

Appuyez sur Entrée après avoir écrit cette commande, puis tapez le message que vous souhaitez envoyer, l'autre utilisateur verra la sortie comme

Message from nand@mypc on pts/19 at 14:54 ...
hi
hi
hello
40

Sous Linux, tout est traité comme un système de fichiers, chaque terminal a son fichier qui peut être vu par la commande who.

Par exemple:

> who

Output:
username   tty7         2016-01-08 10:36 (:0)  
username   pts/0        2016-01-08 12:56 (:0.0)  
username   pts/1        2016-01-08 16:05 (:0.0)  
username   pts/2        2016-01-08 17:10 (:0.0)

Ici username pts/0 est un fichier spécial pour le 1er terminal (2e ligne en sortie). Les données écrites dans ce fichier spécial seront affichées 1er terminal

Par exemple:

> write username pts/0

Remarque: pour quitter la saisie du message, utilisez Ctrl+z.

6
chetan h

Essayez d'utiliser ces commandes:

who
mesg
talk
1
Mark Setchell