Apa metode paling mudah meluncurkan emulator terminal?

14

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 xtermselalu 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.

terdon
sumber
Ini mungkin bisa dilakukan denganexpect
Red Cricket
@RedCricket expect? Bagaimana? Dengan meminta pengguna untuk mengetik di terminal mereka?
terdon
Penasaran, mengapa Anda perlu melakukan ini? Mungkin kami dapat menyarankan solusi alternatif.
user606723
@ user606723 rasa ingin tahu dasar, bertanya-tanya apakah ada yang namanya POSIX atau emulator terminal default yang didefinisikan opendesktop (sepertinya jawabannya tidak). Datang sebagai reaksi terhadap pertanyaan SU ini .
terdon
apakah Anda benar-benar perlu meluncurkan emulator terminal, atau apakah Anda benar-benar hanya perlu mendapatkan shell. Ada kebutuhan yang sangat berbeda di sana.
Lie Ryan

Jawaban:

10

Saya pikir Anda tidak bisa. xtermtidak 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.

derobert
sumber
Ya, ini didorong oleh pertanyaan tentang SU dan saya berharap akan ada cara yang lebih sederhana daripada banyak casepernyataan.
terdon
1
@terdon Saya kira cara sederhananya adalah dengan membuat daftar terminal dependency-light sebagai persyaratan untuk skrip, kemudian gunakan saja.
derobert
Bagaimana dengan jendela terminal yang dulu muncul ketika saya berlari xinit? Sudah bertahun-tahun tidak melakukannya, tetapi yang digunakan untuk memuat server X sederhana dengan xtermjendela kosong (?) Dari mana Anda bisa memulai sesi Anda. Bukankah itu menyiratkan bahwa beberapa terminal emulator diinstal dengan X?
terdon
@terdon dulu, tapi kemudian orang xorg membagi X menjadi banyak paket. (Terminal itu mungkin xterm). Tetapi pemeriksaan cepat menunjukkan saya bisa menghapus xterm dari sistem saya jika saya mau.
derobert
@terdon Itu xterm, emulator terminal X "default" tradisional. Tetapi mungkin tidak selalu diinstal. IIRC instalasi Ubuntu default hanya mencakup gnome-terminal, bukan xterm (dan untuk Kubuntu itu akan menjadi konsole, dll).
Gilles 'SO- stop being evil'