Bir terminalde komut yaz, diğerinde sonuç gör


Yanıtlar:


46

Evet öyle. Bin kelime değerinde bir resim:

radu terminali

Bu nedenle, >işlecini kullanarak komutunuzun çıktısını yönlendirmeniz gerekir /dev/pts/#. Veya komutunu #kullanarak bulabilirsiniz . Tou yönlendirmek ve hataları yapmak istiyorsanız:whow

<command> >& /dev/pts/#

Teşekkürler. ancak başka bir terminal yoksa. ne yapmalıyız? Ya da daha iyisine geçmek demek daha mı iyi?
— Mohammad Reza Rezwani

5
Bunu yapmak için büyük olasılıkla bir betiğe ihtiyacınız olacak: betiğin komutunuzu argüman olarak alacağından sonra yeni bir gnome-terminalpencere açmalı ttyve yeni terminalin tty'sini ( komutu kullanarak ) saptamalı ve sonunda çıktısını göndermelisiniz.
— Radu Rădeanu

8

Sizin için böyle bir şey $HOME/.bashrc:

ng() { gnome-terminal -x sh -c "$*; bash"; }

Bu bir komutu çalıştıracak ve sonucu yeni bir terminal penceresinde gösterecektir.

Örnekler:

ng ls -l
ng echo foo

Düzenleme: Bunun $HOME/.bashrcyerine takma adları kullanmak için:

ng() { gnome-terminal -x bash -ic "$*; bash"; }

Daha sonra çıktısı lsrenkli olmalıdır (bu ipucu için Radu Rădeanu sayesinde ).


Bu, komutu doğrudan yeni terminalde çalıştıracaktır.
— Radu Rădeanu

Evet, ancak eski terminalde ilk çalıştırmanın avantajı nedir?
— TuKsn

Avantaj yok ..., ama aslında bu yoruma bu cevap .
— Radu Rădeanu

4
Eğer çalışacaktır eğer anlayacaksınız type lso zaman ve ng type ls:)
— Radu Rădeanu

1
bashrc içindeki bir satırda yazma işlevi varsa, onu sonlandırmak için noktalı virgül gerekir veya "beklenmedik bir dosya sonu" hatasıyla karşılaşırsınız. bu yüzden ng() { gnome-terminal -x sh -c "$*; bash" ;}daha iyi olmalı. Ve eğer xfce (varsayılan emülatör olarak xfce4-terminal) kullanıyorsanız: ng() { xfce4-terminal -x sh -c "$*; bash" ;}ya da herhangi bir varsayılan emülatör tarafından çalıştırılabilirng() { x-terminal-emulator -x sh -c "$*; bash";}
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.