PID 6350を使用して端末エミュレータ(T1)を開くとしましょう。
別の端末(C1)で次のコマンドを入力します。
echo "ls\n" > /proc/6350/fd/0
これにより、ls
T1 に新しい行が書き込まれますが、実行されません。なぜ?
cat|bash
私もwithを試してみましたが、echo "ls\n" > /proc/catid/fd/0
まだ実行されていません。
コマンドを他の端末にエコーしてコマンドを実行するにはどうすればよいですか?
考えられる答え:
$ mkfifo toto;
$ bash < toto;
$ echo "ls" > toto;
この場合、端末に直接書き込むことはできません(すべては、コマンド(C1)がその端末に表示するのと同じ方法で表示されます。
ベストアンサー1
ttyecho
他の端末(tty / pts)にコマンドを送信し、そのコマンドを実行できるコマンドラインユーティリティがあります。
sudo ttyecho -n /dev/pts/5 ls
望むより:コマンドまたはデータを別の端末に送信するユーティリティ(tty / pts)
また見なさい:ttyecho
githubのソースコード。
もう一つの興味深いttyコマンドは、selector
tty入力バッファを更新するコンソールのリアルタイムインタラクティブパターンマッチングです。
# selector examples
selector -v -x @ <(find . -maxdepth 2 -type d | awk '{print $0"@cd "$0}')
selector -v -x @ <(grep -E -o 'http[^ ]+' fileWithURLS)
望むより:セレクタ - コンソールの動的検索