Saya memiliki program ini yang dapat dijalankan dengan antarmuka pengguna teks dan antarmuka pengguna grafis.
Itu tidak memiliki saklar baris perintah untuk memaksa satu atau yang lain, bukan saya kira itu entah bagaimana otomatis mendeteksi apakah kita berada di X atau tidak (misalnya jika saya menjalankannya dari terminal virtual memasuki mode teks, dan jika saya menjalankannya dari emulator terminal X itu membuka jendela grafis terpisah).
Saya ingin memaksanya ke mode teks dan menjalankannya di dalam terminal X. Bagaimana saya melakukannya?
DISPLAY=:0
jika tidak disetel. Saya percaya Anda dapat memperbaikinya dengan menjalankannya di bawah pengguna yang berbeda dan menggunakan iptables untuk menjatuhkan loopback X11, tapi itu cukup kotor.DISPLAY=invalid:0
?env
alih-alihenv -u DISPLAY emacs foo.c
emacs
memang memiliki flag baris perintah untuk menonaktifkan penggunaan X. Ketik sajaemacs -nw
. Tetapi jika tidak, Anda bisa menggunakanDISPLAY= emacs
yang berfungsi juga.DISPLAY=0.0.0.0:0
gagal seketika tanpa melakukan pencarian server nama.Jika Anda ingin menonaktifkan X untuk satu perintah, Anda dapat menulis
Perhatikan ruang kosong yang strategis setelahnya
=
. Secara umum, Anda dapat mengatur variabel lingkungan untuk suatu proses dengan mengawali perintah Anda dengan urutan<variable>=<value>
dipisahkan oleh spasi. Karena ruang berfungsi sebagai pemisah,=
segera diikuti oleh ruang yang membersihkan variabel sebelumnya. Kita dapat melihat efek dari awalan ini dengan menggunakan subkulit sebagai perintah dan kemudian mencetak lingkungannya. Ambil contoh:Ini akan dicetak
Ini menunjukkan bahwa lingkungan subkulit memang berbeda seperti yang dimaksudkan. Perhatikan bahwa substitusi shell terjadi sebelum argumen individu dilewatkan
echo
, jadi hanya ada satu spasi di antarab
dand
di output, sama seperti jika baris perintahecho a b d
(dengan dua spasi).sumber