ในวิธีที่สองที่เสนอโดยหน้านี้วิธีหนึ่งได้รับ tty ซึ่ง bash กำลังถูกรันด้วยคำสั่ง:
ps ax | grep $$ | awk '{ print $2 }'
ฉันคิดกับตัวเองว่านี่เป็นสิ่งที่ขี้เกียจนิดหน่อยโดยแสดงรายการกระบวนการทำงานทั้งหมดเพื่อดึงข้อมูลหนึ่ง มันจะไม่มีประสิทธิภาพมากกว่านี้หรือไม่
ps -p $$ | tail -n 1 | awk '{ print $2 }'
FYI ฉันเจอปัญหานี้เพราะบางครั้งคำสั่งแรกจะให้ผลลัพธ์สองบรรทัด (หรือมากกว่า) สิ่งนี้จะเกิดขึ้นแบบสุ่มเมื่อจะมีกระบวนการอื่นทำงานด้วย PID ที่มี$$
เป็นสตริงย่อย ในแนวทางที่สองฉันกำลังหลีกเลี่ยงกรณีดังกล่าวโดยขอ PID ที่ฉันรู้ว่าฉันต้องการ
tty
คำสั่งในเซสชั่นทุบตีของคุณ หากคุณยืนยันในการใช้ps
-ps -p $$ -o tty=