Buka tab secara program di gnome-terminal, jalankan perintah, dan biarkan tab tetap terbuka

12

Saya mencoba untuk menulis perintah yang akan meluncurkan beberapa terminal tab, menjalankan sesuatu di setiap tab, dan membuat setiap tab tetap terbuka setelah perintah selesai, sehingga saya dapat melihat output dan mengetik lebih banyak perintah di setiap tab

sesuatu seperti ini:

gnome-terminal --tab -e "ls -a" --tab -e "ls"

tetapi masalah dengan ini adalah bahwa tab ditutup segera setelah perintah "ls" selesai. Adakah yang tahu cara membuat tab tetap terbuka?

Menandai
sumber

Jawaban:

11

Gnome-terminal dapat menjalankan perintah atau membuka shell, tetapi tidak keduanya.

Ada solusi untuk melakukan keduanya dengan merangkum perintah dan doa berikutnya shell menjadi satu perintah.

$ gnome-terminal -e "bash -c \"echo foo; echo bar; exec bash\""

Untuk lebih banyak alternatif, bacalah jawaban saya untuk pertanyaan serupa tentang stack overflow: /programming/3512055/avoid-gnome-terminal-close-after-script-execution/3531426#3531426

lesmana
sumber
10

Jika Anda telah xdotooldan wmctrldiinstal, maka berikut shell script bekerja sekuat:

#!/usr/bin/env bash

window="$(xdotool search --class gnome-terminal | head -1)"
xdotool windowfocus $window
xdotool key ctrl+shift+t
xdotool type "$*"
xdotool key Return

Saya menggunakannya seperti ini:

$ run-in-new-tab 'ls -l'

Saya menemukan ide ini di blog Trustin Lee .


sumber
Terima kasih. Ini bekerja dengan cukup baik. Saya harus menambahkan sleep 1setelah ctrl + shift + t untuk membuatnya bekerja untuk saya. Saya akan menerima ini jika tidak ada yang lain segera muncul
Ya - saya menemukan saya harus sleep 2membuatnya bekerja 100% dari waktu. Solusi hebat - saya sekarang membuka 8 tab, yang ssh ke berbagai server, memulai berbagai proses dll, menggunakan ini: setup pagi saya sekarang benar-benar dituliskan :)
Max Williams
Sebenarnya wmctrltidak wajib.
nedim