In der zweiten von dieser Seite vorgeschlagenen Methode erhält man das tty, in dem die Bash ausgeführt wird, mit dem Befehl:
ps ax | grep $$ | awk '{ print $2 }'
Ich dachte mir, dass dies sicherlich ein bisschen faul ist, alle laufenden Prozesse aufzulisten, nur um einen von ihnen zu extrahieren. Wäre es nicht effizienter (ich frage auch, ob dies unerwünschte Effekte hervorrufen würde):
ps -p $$ | tail -n 1 | awk '{ print $2 }'
Zu Ihrer Information, ich bin auf dieses Problem gestoßen, weil manchmal der erste Befehl tatsächlich zwei (oder mehr) Zeilen ergab. Dies geschieht zufällig, wenn ein anderer Prozess mit einer PID ausgeführt wird, die $$
eine Teilzeichenfolge enthält . Beim zweiten Ansatz vermeide ich solche Fälle, indem ich die PID anfordere, von der ich weiß, dass ich sie möchte.
tty
Befehl in Ihrer Bash-Sitzung auszuführen . Wenn Sie darauf bestehen,ps
-ps -p $$ -o tty=