Beberapa skrip saya (perubahan keymap, penambahan kunci publik) perlu bertindak berbeda ketika di konsol virtual vs. dalam xterm. Untuk apa kode sebenarnya
#!/bin/ksh
if [[ in_a_virtual_console ]]; then
...
else
...
fi
shell
command-line
terminal
xterm
John Baber-Lucero
sumber
sumber
Jika Anda bermaksud membedakan shell interaktif dan noninteraktif, gunakan
test
dukungan inbuilt untuk mendeteksinya (tidak yakin apakah ksh memilikinya, tetapi biner dari coreutils juga mendukungnya):Jika Anda benar-benar bermaksud apakah Anda menggunakan tty / pty / pts atau sesuatu yang lain, parsing output dari
tty
:sumber
Ini akan tergantung pada sistem operasi. Untuk Linux, Anda bisa melakukan ini:
Ini, tentu saja, mengasumsikan bahwa Anda belum mengubah
TERM
variabel lingkungan sendiri, yang secara otomatis ditetapkanlinux
hanya ketika Anda masuk ke konsol virtual (di bawah Ubuntu diatur kexterm
dalam aplikasi konsol, tetapi ini dapat bervariasi di antara OS). Periksa isi TERM di berbagai aplikasi yang Anda gunakan, dan atur sesuai kebutuhan.sumber