buka terminal gnome dengan beberapa tab dan jalankan beberapa perintah di setiap tab

12

Inilah yang ingin saya capai:

  1. Saya ingin membuka terminal gnome dengan lima tab di dalamnya
  2. Saya ingin menjalankan seperangkat perintah (5 - 10 perintah) di setiap tab secara otomatis Tab
    pertama: akan mengatur tampilan huruf besar dan setelah itu jalankan satu atau lebih perintah
    Tab kedua: harus masuk ke server dan menjalankan beberapa perintah
    Tab ketiga: hanya akan menjalankan beberapa perintah

gnome-terminal --geometry=260x25-0+0 --tab -e "csh -c \"ct setview myViewName; cal\"" –tab --tab --tab (berfungsi ok, tampilan diatur tetapi tidak ada perintah yang dijalankan setelah itu)

Saya telah mencoba melakukannya dengan cara ini dan menjalankannya dalam skrip di bawah ini:

gnome-terminal --geometry 125x18-0-26 --tab -t "some title" -e /home/ekido/Desktop/MyScripts/myScript

#!/usr/bin/expect
exec gnome-terminal --geometry 125x49-0+81 –tab
spawn ssh usert@server
expect "password"
send "*******\r"
expect "user@server100:~>"
send “some command\r"
expect "user@server100:~>"
send “some command"
interact 

Jika saya menghapus exec gnome-terminal --geometry 125x49-0+81 –tabbaris dari contoh dan memanggil skrip dari beberapa file lain, itu berfungsi dengan baik - saya masuk ke server dan semua perintah dijalankan. Adakah yang bisa membantu saya menyelesaikan ini?

Untuk menulis sebuah skrip yang saya panggil untuk setiap tab bukanlah suatu pilihan, karena saya akan memiliki 5 terminal dengan masing-masing tab pada akhirnya, dan itu berarti 25 hingga 30 skrip untuk ditulis (biayanya lebih mahal daripada membantu dalam masalah saya).

ekido
sumber
Bukannya saya ahli di Terminal GNOME, tetapi tab yang Anda buat harus disimpan dalam profil. Setelah membuat profil, saya yakin Anda bisa membuat skrip. Lihat Mengelola Profil di Bantuan GNOME.
eyoung100

Jawaban:

11

Ini sepertinya berfungsi pada mesin saya:

gnome-terminal --geometry=260x25-0+0 --tab -e "bash -c 'date; read -n1'" --tab -e "bash -c 'echo meow; read -n1' " --tab --tab

Harap dicatat, segera setelah proses yang dijalankan oleh -e selesai berjalan, mereka akan berakhir. Dalam hal ini, bash dimuat, menjalankan perintah apa pun yang Anda berikan padanya, dan segera ada. Saya memasukkan pernyataan baca untuk menunggu input pengguna. Dengan cara ini tab-tab itu tidak akan ditutup sampai Anda menekan tombol, hanya supaya Anda bisa melihatnya dalam contoh ini. Tanpa mereka, akan terlihat seolah-olah hanya dua tab yang dibuka, karena dua lainnya akan mengeksekusi dan menutup terlalu cepat.

Unix-Ninja
sumber
Terima kasih atas jawaban anda. Tentu, saya bisa melihat output dari satu perintah (dalam hal ini "tanggal") tetapi saya ingin menjalankan beberapa perintah, dapat melihat output dan kemudian terus menulis perintah baru secara manual di tab yang sama.
ekido
3

Karena bash berhenti setelah perintah selesai, Anda dapat memanggil instance lain dari bashsetelah perintah Anda untuk mendapatkan shell interaktif:

gnome-terminal  --tab -e "bash -c 'ps -ef; bash'" --tab -e "bash -c 'ls; bash'" --tab -e "bash -c 'top -n 1; bash'"
Jean Spector
sumber
tampaknya jika saya menutup terminal, proses yang mendasarinya tidak menutup secara otomatis, apakah ada solusi untuk ini juga? Saya ingin menutup seluruh jendela dan semua tab dengan prosesnya harus
dibasmi
2

Simpan di bawah ini sebagai script.sh

#!/usr/bin/env bash

me=$(realpath $0)

commands=(
"echo"
"ls -l && echo 'yes'"
"top"
"ps"
)
len=${#commands[@]}

if [ $# -eq 0 ];then
    num=$len
else
    num=$1
fi

n=$((len-num))
command=${commands[$n]}
num=$((num-1))

xdotool key ctrl+shift+t

if [ $num -gt -1 ]; then
    sleep 1; xdotool type --delay 1 --clearmodifiers "$me $num; ${command}"; xdotool key Return;
fi

tambahkan script.sh ke $ PATH kemudian jalankan

gnome-terminal -x script.sh

Lihat Buka tab baru di gnome-terminal menggunakan baris perintah .

rofrol
sumber
segalanya gagal terlepas dari ini. Sekarang, saya ingin beberapa tab terbuka tanpa perintah. Sebagai contoh, saya ingin memiliki sepuluh tab terbuka, tetapi tiga jika mereka dapat menjalankan beberapa perintah seperti htop ..
nyxee