Dans la deuxième méthode proposée par cette page , on obtient le tty dans lequel bash est exécuté avec la commande:
ps ax | grep $$ | awk '{ print $2 }'
Je me suis dit que c'était sûrement un peu paresseux, listant tous les processus en cours uniquement pour en extraire un. Ne serait-il pas plus efficace (je demande également si cela introduirait des effets indésirables) de faire:
ps -p $$ | tail -n 1 | awk '{ print $2 }'
Pour info, je suis tombé sur ce problème car parfois la première commande produisait en fait deux (ou plus) lignes. Cela se produirait de manière aléatoire, lorsqu'un autre processus s'exécuterait avec un PID qui contient $$
une sous-chaîne. Dans la deuxième approche, j'évite de tels cas en demandant le PID que je sais que je veux.
tty
commande dans votre session bash. Si vous insistez pour utiliserps
-ps -p $$ -o tty=