Dalam metode kedua yang diusulkan oleh halaman ini , seseorang mendapatkan tty di mana bash dijalankan dengan perintah:
ps ax | grep $$ | awk '{ print $2 }'
Saya pikir pada diri saya sendiri bahwa ini agak malas, mendaftar semua proses yang berjalan hanya untuk mengekstrak salah satunya. Apakah itu tidak lebih efisien (saya juga bertanya apakah ini akan menimbulkan efek yang tidak diinginkan) untuk dilakukan:
ps -p $$ | tail -n 1 | awk '{ print $2 }'
FYI, saya menemukan masalah ini karena kadang-kadang perintah pertama benar-benar menghasilkan dua (atau lebih) baris. Ini akan terjadi secara acak, ketika akan ada proses lain yang berjalan dengan PID yang berisi $$
sebagai substring. Dalam pendekatan kedua, saya menghindari kasus-kasus seperti itu dengan meminta PID yang saya tahu saya inginkan.
tty
perintah dalam sesi bash Anda. Jika Anda bersikeras menggunakanps
-ps -p $$ -o tty=