У другому методі, запропонованому цією сторінкою , отримується tty, в якому баш виконується за допомогою команди:
ps ax | grep $$ | awk '{ print $2 }'
Я хоч для себе, що напевно це трохи ліниво, перелічуючи всі запущені процеси лише для вилучення одного з них. Чи не було б більш ефективно (я також запитую, чи це спричинить небажані ефекти) робити:
ps -p $$ | tail -n 1 | awk '{ print $2 }'
FYI, я зіткнувся з цим питанням, оскільки іноді перша команда фактично давала два (або більше) рядків. Це станеться випадковим чином, коли буде інший процес, запущений з PID, який містить $$
як підрядку. У другому підході я уникаю подібних випадків, запитуючи PID, який я знаю, що хочу.
tty
команду в рамках вашого сеансу bash. Якщо ви наполягаєте на використанніps
-ps -p $$ -o tty=