1つの端末でコマンドを書き込み、他の端末で結果を確認


回答:


46

はい、そうです。千の言葉に値する絵:

ラドゥのターミナル

そのため、>operatorを使用してコマンドの出力をにリダイレクトする必要があります/dev/pts/#。またはコマンド#を使用して見つけることができます。touがリダイレクトとエラーを希望する場合は、次を使用します。whow

<command> >& /dev/pts/#

ありがとう。しかし、別の端末が存在しない場合。何をすべきか それとも、新しいものに渡すといいですか?
モハマドレザレスワニ14

5
そのためにはおそらくスクリプトが必要です。スクリプトは引数としてコマンドを受け取り、新しいコマンドを開いて新しいターミナルgnome-terminalのtty(ttyコマンドを使用)を検出し、最終的に出力を送信する必要があります。
ラドゥラデアヌ14

8

あなたのためにこのような何か$HOME/.bashrc

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

これにより、コマンドが実行され、新しいターミナルウィンドウに結果が表示されます。

例:

ng ls -l
ng echo foo

編集:エイリアスを考慮するには、$HOME/.bashrc代わりにこれを使用します:

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

の出力はls色付けする必要があります(このヒントについてはRaduRădeanuに感謝します)。


これにより、新しい端末でコマンドが直接実行されます。
ラドゥラデアヌ14

はい、しかし、古い端末で最初に実行する利点は何ですか?
TuKsn 14

利点はありませんが、実際にはこのコメントに対するこの回答です。
ラドゥラデアヌ14

4
実行するかどうかを理解type lsしてからng type ls:)
ラドゥラデアヌ14

1
関数をbashrcの1行に書き込む場合、終了するためにセミコロンが必要になるか、「予期しないファイルの終わり」エラーが発生します。とてもng() { gnome-terminal -x sh -c "$*; bash" ;}良いはずです。また、xfce(xfce4-terminalをデフォルトのエミュレーター)を使用している場合:ng() { xfce4-terminal -x sh -c "$*; bash" ;}または、デフォルトのエミュレーターで単に実行することができますng() { x-terminal-emulator -x sh -c "$*; bash";}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.