W drugiej metodzie zaproponowanej przez tę stronę otrzymujemy tty, w którym uruchamiany jest bash za pomocą polecenia:
ps ax | grep $$ | awk '{ print $2 }'
Pomyślałem sobie, że z pewnością jest to trochę leniwe, wymieniając wszystkie uruchomione procesy tylko po to, aby wyodrębnić jeden z nich. Czy nie byłoby bardziej wydajne (pytam również, czy wprowadziłoby to niepożądane efekty):
ps -p $$ | tail -n 1 | awk '{ print $2 }'
Do twojej wiadomości natknąłem się na ten problem, ponieważ czasami pierwsze polecenie faktycznie dało dwie (lub więcej) linii. Stałoby się to losowo, gdy byłby uruchomiony inny proces z PID, który zawiera $$
jako podłańcuch. W drugim podejściu unikam takich przypadków, żądając PID, o którym wiem, że chcę.
tty
polecenia w sesji bash. Jeśli nalegasz na użycieps
-ps -p $$ -o tty=