Katakanlah saya perlu menulis skrip yang akan meluncurkan terminal dan menjalankan perintah dan saya membutuhkannya untuk bekerja pada berbagai sistem. Bagaimana saya bisa melakukannya dengan cara yang aman dan portabel?
Apakah xterm
selalu terpasang? Saya berasumsi bahwa setiap * nix dengan GUI harus memiliki beberapa emulator terminal. Bagaimana saya bisa mencapainya? Sistem Debian memiliki x-terminal-emulator
tetapi itu, tampaknya, bahkan tidak bekerja di Red Hat, apalagi non-Linux * nixes.
terminal-emulator
portability
terdon
sumber
sumber
expect
expect
? Bagaimana? Dengan meminta pengguna untuk mengetik di terminal mereka?Jawaban:
Saya pikir Anda tidak bisa.
xterm
tidak perlu diinstal di mana-mana, dan memang mungkin tidak secara default. Terutama ketika lingkungan desktop sedang digunakan yang menyediakan terminal sendiri.Saya pikir Anda terbaik mungkin untuk memeriksa keberadaan terminal yang berbeda (misalnya,
xdg-terminal
,x-terminal-emulator
,gnome-terminal
,konsole
,xterm
). Dan mungkin bekerja untuk mendapatkan terminal xdg sebenarnya ditambahkan ke standar FreeDesktop.org.Kemudian Anda akan menemukan bahwa terminal berbeda memiliki cara berbeda untuk menjalankan perintah, dan kadang-kadang bahkan versi berbeda dari terminal yang sama ... misalnya, lihat Debian Bug # 648271 .
Anda mungkin juga harus memberi admin / pengguna cara untuk mengatur perintah kustom. Itu pasti akan dibutuhkan.
sumber
case
pernyataan.xinit
? Sudah bertahun-tahun tidak melakukannya, tetapi yang digunakan untuk memuat server X sederhana denganxterm
jendela kosong (?) Dari mana Anda bisa memulai sesi Anda. Bukankah itu menyiratkan bahwa beberapa terminal emulator diinstal dengan X?Ya, Anda harus menggunakan pembungkus. Ada yang bagus disertakan dengan i3 WM. Dijelaskan di sini: http://build.i3wm.org/docs/i3-sensible-terminal.html
Cukup salin ini ke fungsi shell di skrip Anda: http://code.stapelberg.de/git/i3/tree/i3-sensible-terminal
sumber
which
yang merupakan ide yang buruk )