Yanıtlar:
Komutunun çağrıldığını varsayarsak, mycommand
fırlatıcımı bunu çalıştırmak için değiştiririm:
gnome-terminal -e "mycommand|less"
Daha kalıcı, belki de daha temiz bir çözüm istiyorsanız, GNOME terminalini açın, Düzenle, Profil tercihleri bölümüne gidin ve Başlık ve Komut sekmesini tıklayın. "Komut çıktığında" seçeneğini "Terminali açık tut" olarak değiştirin.
Komutları çalıştırdığınızda, bir şey çalıştığında terminali açık bırakması gerekir.
Düzenleme: Eğer terminali gerçekten önemsemiyorsanız, sadece xterm'in tutma bayrağını kullanabilirsiniz:
xterm -e "mycommand" hold
Fırlatıcı doğru bir komut dosyası çalışıyor?
Komut dosyanızın sonunda ekle
read -p "Press any key to exit > " -n1 junk
echo
Sonra senaryonuzu bitirene kadar bekleyecek.
command || read -n1 -p "Command failed. Press any key to exit..."
.Desktop kısayolunuzda bunu kullanın
Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $SHELL"
Komut dosyanız bittikten sonra, Bash işlemi kendisini yeni bir çağrı ile değiştirecektir.
Alıntılanan argümanları betiğinize aktarmanız gerekirse, alıntılardan kaçmanız gerekir:
Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $SHELL"
Diğer cevaplardan biraz farklı bir yaklaşım: Komutunuzu çalıştırın ve bu başarısız olursa bir kabuk çekin. Bu şekilde terminali açık tutmanız gerekmez (bu komutun başarısı veya başarısızlığı arasında ayrım yapmaz) ve bu kabuğu özellikle başarısızlıkta yararlı bulabilirsin. Kapatmak için sadece Ctrl-D (EOF), "exit", Alt-F4 (veya pencere yöneticiniz pencereleri kapatmak için ne kullanıyorsa) kullanın.
#!/bin/sh
[ $# -eq 0 ] && {
echo "$(basename $0): no command" >&2
exit 1
}
"$@" || {
echo "failed: $?"
exec $SHELL
}
Bu dosyayı ~ / bin gibi bir yere yerleştirin, ardından başlatıcınızda "orjinal komutunuzu başarılı ya da kabuklayın" kullanın.
Bu cevap , ne istersen onu yapmak için şimdiye kadar gördüğüm en iyi cevabı veriyor. --İnit-file parametresiyle çalıştırmak ve kullanmak için komutlarla bir komut dosyası oluşturmanızı önerir (bash özel, ancak muhtemelen aynı şeyi csh / tcsh / zsh, vb. İçin de yapabilirsiniz):
#!/bin/bash --init-file
commands to run
... ve şu şekilde çalıştırın:
xterm -e /path/to/script
# or
gnome-terminal -e /path/to/script
# or
the-terminal -e bash --init-file /path/to/script/with/no/shebang
watch
Komutu kullan .
Biçim: watch -n60 myCommand
veyawatch -n60 "my command string"
-n
çağrıları arasında beklenecek saniye sayısını belirtilen myCommand ; örn: Yukarıdaki komut arayacak myCommand sonsuza kadar her 60 saniyede bir."my command string"
.Diyelim ki disk kullanımını görüntüleyen ve okuyucunun görmesi için açık kalan bir Başlatıcı istiyorsanız. Bu komutu sadece her 60 saniyede bir
watch -n60 "df -h"
çağıran Başlatıcı: içinde kullanırdım df -h
.
Kabul edilen cevabını gnome-terminal -e "mycommand|less"
beğeniyorum çünkü varsayılan olarak farklı bir terminal kullanan Xubuntu kullanıyorum.
--tab-with-profile=PROFILENAME
seçeneğini geçmenizi öneririm . Farklı bahaviours bu şekilde :-) için birçok profile sahip olabilir