Terminal pencerelerini açan ve içinde komutları yürüten bir komut dosyasını nasıl yapabilirim?

110

Ubuntu makinemi başlattığımda çalıştırmam gereken üç komut dosyası var, geliştirme ortamımda kullandığım hizmetleri başlatıyorlar.

Bunu yapmak için üç terminali el ile açıp komutları yazarım.

Üç terminali açacak ve bunlardan her birinde bir komut çalıştıracak bir betik oluşturmanın herhangi bir yolu var mı? (Her komut ayrı bir terminal penceresinde olmalıdır, böylece çıktılarını görebilirim).

    
sordu JSBach 02.06.2011 21:58

5 cevap

112
gnome-terminal -e command

veya

xterm -e command

veya

konsole -e command

Hemen hemen

terminal -e command

Komut çıktığı zaman terminalin kalmasını sağlamak için:

Konsole'de --noclose bayrağı var.

xterm'de -hold bayrağı var.

gnome-terminal cinsinden Düzenle - & gt; Profil Tercihleri ​​ - & gt; Başlık . Komut sekmesini tıklayın. Çıkış komutu verildi etiketli açılır menüden Terminali beklet 'i seçin. Bunun için yeni bir profil oluşturmalı ve

ile çalıştırmalısınız.
gnome-terminal --window-with-profile=NAMEOFTHEPROFILE -e command
    
verilen cevap nickguletskii 02.06.2011 22:03
47

Sabit kodlama gnome-terminal , konsole ve onun yerine Alternatifler sistemini kullanın. Varsayılan terminal emülatörünü yürüten program:

x-terminal-emulator

Sistemimde, bu komutu her çalıştırdığımda yeni bir Konsole örneği açar.

Neyse ki, terminaller bir komutu yürütmek için -e seçeneğini destekliyor gibi görünüyor ( konsole ve gnome-terminal için doğruladım). Komuttan sonra argümanlar, çağırılan komuta iletilir. Bash terminalimde açık kalmayı reddetti, bir terminal almak için ek bir komut dosyası gerekiyor:

#!/bin/sh
"[email protected]"
exec "$SHELL"

Önceki komut dosyasını /home/user/hacky olarak kaydettiyseniz ve çalıştırılabilir duruma getirdiyseniz, komut dosyalarınızı şu şekilde çalıştırabilirsiniz:

x-terminal-emulator -e /home/user/hacky your-script optional arguments here

Tam yol gerekli ve /home/user/hacky dosyasının çalıştırılabilir olması gerekiyor.

Yeni bir terminal penceresindeki bir betiği çalıştırma yönündeki önceki denemem revizyon # 2 ’de bulunabilir. Farkların x-terminal-emulator 'ye aktarılabileceğini anladım.

    
verilen cevap Lekensteyn 02.06.2011 22:29
7

Basitçe -

#!/bin/bash

/etc/init.d/ccpd status

Bu, terminalde hiçbir şeyi görüntülemesine gerek olmayan diğer komutlar için yeterlidir. Ama burada görüntülenen durumu görmeniz gerekiyor. Yani, bir terminal pencerede çalıştırmak gerekiyor

#!/bin/bash

gnome-terminal -e "/etc/init.d/ccpd status"  --window-with-profile=NAMEOFTHEPROFILE

Diğer gönderi , [] 'nin yer tutucu olması amaçlandı

Burada "NAMEOFTHEPROFILE", "Komuttan çıkıldığında terminali tutar" profilinin adıyla değiştirilmelidir.

    
verilen cevap Karthik T 23.01.2013 10:31
1

Lekensteyn'in cevabını yorumladı. Bunun eski bir yazı olduğunu biliyorum, ancak bunu yararlı bulmuş herkes için (az önce yaptığım gibi) Başka bir "hacky script" yapmak yerine, sadece betiğin içinde bir işlev koymak için

hacky_function()
{
"[email protected]"
exec "$SHELL"
}

"x-terminal-emulator -e / path / to / script hacky_function isteğe bağlı argümanlar burada" ile komut dosyanızı arayın

Komut dosyasının sonuna "$ @" yazmayı unutmayın

    
verilen cevap Sruli 06.12.2017 21:11
-2

ekran komutunu kullanın ve -d mevcut bir ekran oturumundan çıkarın ve buraya yeniden bağlayın -m yeni bir ekran oturumu zorlar -S varsayılan adı kullanmak yerine adlandırılmış bir oturum oluşturun

    
verilen cevap Jack Heath 13.04.2014 22:00

Etiketlerdeki diğer soruları oku