このシェル出力をファイルに書き込めないのはなぜですか? [コピー]

このシェル出力をファイルに書き込めないのはなぜですか? [コピー]

私はタッチパッドエミュレータを実行するLinux Pinephoneスクリプトを書いています。これを行うには、次の出力文字列を比較する必要があります。

./TouchpadEmulator /dev/input/event2 /dev/input/event1

Enter キーを押すと端末が表示されます。

max x:719 max y:1439

そして、端末はコマンドプロンプトが表示されずに開いています。これは、コードがバックグラウンドで実行され続けることを意味します。

私の問題は、この「max x:719 max y:1430」をいくつかの変数、いくつかのファイル、または次のコマンドの引数として出力しようとしていることです。

私は次のことを試しました

./TouchpadEmulator /dev/input/event2 /dev/input/event1 > textfile.txt

しかし、textfile.txtはまだ空です。

私も試しました

echo $(./TouchpadEmulator /dev/input/event2 /dev/input/event1)

しかし、端末画面はまだ空です。

私の考えでは、コマンドは常にバックグラウンドで実行されるため、「./TouchpadEmulator...」が完全に実行されるのを待つため、エコーは実行されません。

答え1

おそらくSTDOUTではなくSTDERRに書き込むようです。

リダイレクトSTDERRのみを使用してください2> textfile.txt

読むman bash

関連情報