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.