gnome terminalini birkaç sekmeyle açın ve her sekmede birkaç komut yürütün


12

Bunu başarmak istiyorum:

  1. İçinde beş sekmeli bir gnome terminali açmak istiyorum
  2. Her sekmede otomatik olarak bir dizi komut (5 - 10 komut) çalıştırmak istiyorum
    İlk sekme: açık durum görünümünü ayarlamalı ve bundan sonra bir veya daha fazla komut yürütmeli
    İkinci sekme: bir sunucuda oturum açmalı ve bazı komutları yürütmeli
    Üçüncü sekme: sadece bazı komutları yürütür

gnome-terminal --geometry=260x25-0+0 --tab -e "csh -c \"ct setview myViewName; cal\"" –tab --tab --tab (tamam çalışıyor, görünüm ayarlandı ancak bundan sonra komut yürütülmedi)

Bunun yerine bu şekilde yapmaya çalıştım ve aşağıdaki kodda bu çalışıyorum:

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 

exec gnome-terminal --geometry 125x49-0+81 –tabÖrneklerden satırları kaldırır ve başka bir dosyadan bir komut dosyası çağırırsam, iyi çalışır - Sunucuda oturum açtım ve tüm komutları çalıştırdım. Birisi bunu çözmeme yardımcı olabilir mi?

Her sekme için çağırdığım bir komut dosyası yazmak bir seçenek değil, çünkü sonunda her birinde 5-7 sekmeli 5 terminalim olacak ve bu da yazmak için 25 ila 30 komut dosyası olacağı anlamına geliyor (yardımcı olduğundan daha pahalı) benim sorunumda).


GNOME Terminalinde uzman olduğumdan değil, oluşturduğunuz sekmelerin bir profile kaydedilmesi gerekir. Profili oluşturduktan sonra, komut dosyasını yazabileceğinize inanıyorum. GNOME Yardımı'ndaki Profilleri Yönetme konusuna bakın .
eyoung100

Yanıtlar:


11

Bu makinemde çalışıyor gibi görünüyor:

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

Lütfen -e tarafından yürütülen işlemler çalıştırılır tamamlanmaz sona ereceklerini unutmayın. Bu durumda bash yüklenir, ilettiğiniz komutları çalıştırır ve hemen var olur. Kullanıcı girişini beklemek için read ifadelerini koydum. Bu şekilde, bir sekme basana kadar bu sekmeler kapanmaz, böylece bu örnekte görebilirsiniz. Onlar olmadan, sadece iki sekme açılmış gibi görünür, çünkü diğer ikisi çok hızlı bir şekilde yürütülür ve kapanır.


Cevabınız için teşekkürler. Elbette, bir komutun çıktısını görüyorum (bu durumda "tarih"), ancak birkaç komut yürütmek, çıktıyı görmek ve aynı sekmede manuel olarak yeni komutlar yazmaya devam etmek istiyorum.
ekido

3

Komut tamamlandıktan sonra bash sonlandığından, bashetkileşimli bir kabuk elde etmek için komutunuzdan sonra başka bir örneğini çağırabilirsiniz :

gnome-terminal  --tab -e "bash -c 'ps -ef; bash'" --tab -e "bash -c 'ls; bash'" --tab -e "bash -c 'top -n 1; bash'"

Terminali kapatırsam temel süreçler otomatik olarak kapanmazsa, bunun da bir çözümü var mı? Tüm pencereyi kapatmak istiyorum ve tüm sekmeleri işlemleriyle öldürmek lazım
Blub

2

Aşağıya script.sh olarak kaydet

#!/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

script.sh dosyasını $ PATH'a ekleyin ve çalıştırın

gnome-terminal -x script.sh

Bkz . Komut satırını kullanarak gnome terminalinde yeni bir sekme açma .


diğer her şey bundan ayrılamadı. Şimdi, bazı sekmeleri komut vermeden açmak istiyorum. Örneğin, on sekme açık olmasını istiyorum, ancak üç htop gibi bazı komutlar çalışıyor olabilir ..
nyxee
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.