問題タブ [stty]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - stty -icanon 使用時の return の読み方
読み取りがブロックされないように stty -icanon time 0 min 0 を設定した後にループがあります。
エンター/リターンキーを読み取れないことを除いて、問題なく動作します。
このモードでエンターキーを読み取る方法はありますか、または私のコードを書くことができる他の方法はありますか?
関連コード
bash - 「stty raw -echo」は OS X で何をしますか
試してみると$ stty raw -echo、ターミナル(OS X 10.6のBash)で。それはひもじいことをし、ターミナルがそこにぶら下がっているようなものです。次に、マニュアルを検索します。
stty — 端末デバイス インターフェイスのオプションを設定します
生 (-生)
設定されている場合、入出力処理が実行されないように端末のモードを変更します。設定されていない場合は、端末のモードを入出力処理を実行する適切な状態に変更します。端末ドライバには単一の RAW ビットがなくなったため、raw を設定する前にどのフラグが設定されたかを直感的に理解することはできないことに注意してください。これは、raw の設定を解除しても、以前に有効だったすべての設定が元に戻されない可能性があることを意味します。端末を生の状態に設定してから正確に復元するには、次のシェル コードを使用することをお勧めします。エコー (-エコー)
入力されたすべての文字をエコー バックします (エコー バックしません)。
つまり、ターミナルを raw モードにしてから、入力した内容をそのまま返すことになっていますか? 誰かがこのコマンドが何をするのか説明してもらえますか? rawそして、引数にダッシュが含まれている場合の違いは何-rawですか? それらは同じ意味ですか?これを学ぶことができるリソースはありますか?
php - PhpSerial: 利用可能な stty がありません -- 機能していないようです
Raspberry Pi の UART ピンを使用して、シリアル ボードの読み取りと書き込みを行うプロジェクトに取り組んでいます。しかし、私はすでにレンガの壁にぶつかっています。使用しようとするたびにPhpSerial、常にエラーが発生します。
致命的なエラー: 利用可能な stty がありません。実行できません。/var/www/PHP-Serial/examples/PhpSerial.php の 56 行目
入力で多数の構成を試しました:
php/lighthttpdは www-data として実行されています。そのユーザーに chown してみました/dev/ttyAMA0。そのユーザーにダイヤルアウト グループを追加しました。php.ini に無効化機能やその他のものが表示されません。また、wiki に従って pi でシリアル デバイスを使用するための標準的なセットアップも行っていません。
sudo minicom -b 38400 -o -D /dev/ttyAMA0
エラーが参照している行は次のとおりです。
私には理解できませんが、他の誰かがそうかもしれません。前もって感謝します。
linux - .inputrc オーバーライド Control+W
.inputrc 内の bash で Control+W をオーバーライドするにはどうすればよいですか? 以下は単独では機能しません。
追加すると機能しますstty werase undefが、「s」キーが不思議なことに無効になります!
python - Pythonスクリプトを実行した後、端末がめちゃくちゃになる(新しい行が表示されない)
Python サブプロセス モジュールを使用して、複数のホストでコマンドを並行して実行するために使用する Python スクリプトがあります。SSH をラップし、基本的に次のような呼び出しを行います。
有効なコマンドは次のように実行されます。
スクリプトの実行後に端末がめちゃくちゃになる(改行が失われる)という断続的なエラーが発生することを除いて、正常に動作します。コマンドラインから「リセット」すると修正されますが、これがどのように起こっているのか正確にはわかりません。タプルの出力の最初の項目の最後に「\r\n」がある場合と、ない場合があることに気付きました。以下を参照してください。具体的には「許可が拒否されました\r\n」 :
2 番目の出力はわずかに変更されていますが、欠落している"\r"と、スクリプトの実行後にプロンプトがどのように "wacked" になるかを示しています。
これは、サブプロセス コマンドで「-t」オプションを使用することに関連していると思います。どういうわけか私は\rを失っています。「-t」オプションを削除すると、この問題は解決しますが、簡単に言えば、リモート マシンで使用する環境変数を渡すために必要です (私はハック的に TERM 変数を使用して、ユーザーのパスワードを渡すようにしています)。 sudo の目的は、AcceptEnv がリモート sshd サーバーで任意の変数を渡すことを許可しているとは想定できないためです; これは、リモート マシンのプロセス リストに表示されるコマンド ラインでパスワードを渡さないようにするためです)。
「-t」オプションを削除せずに、これを回避する方法を誰かが知っているかどうか疑問に思っていますか?
更新:実際に出力を画面に出力するかどうかに関係なく、スクリプト内でsubprocess.Popen(...).communicate()コマンド を実行すると、tty 設定が変更されるようです。それは本当に奇妙だと思います。私のtty設定の前後の違いは次のとおりです(stty -aから):
communicate() が端末設定を変更するのを止める方法を知りたいですか? それは可能ですか、それともバグですか?
c - OS X でシリアル ポートを開くと、O_NONBLOCK フラグがないと永久にハングする
シリアル デバイスを MacBook Air に接続するシリアル - USB コンバータ (FTDI、http://www.ftdichip.com/Drivers/VCP.htmからインストールされたドライバ) があります。MacBook では と の両方として表示され/dev/cu.usbserial-A4017CQYます/dev/tty.usbserial-A4017CQY。私が説明するすべての動作は、これら 2 つのどちらを使用しても同じです。
編集:使用/dev/cu.*すると問題が解決しました。この質問を最初に投稿したときに、なぜうまくいかなかったのかわかりません。TTY の名前が逆になっていますが、私を正しい方向に導いてくれた duswuff に感謝し/dev/tty.*ます/dev/cu.*。
私が最初に遭遇した問題は、フラグopen()を使用しないとsyscall が永久にブロックされるということでした。O_NONBLOCKフラグを使用すると、適切なファイル記述子を取得できますが、write()実際には書き込みが行われていないようで (ただし、バイトを書き込んだと主張して問題なく返されます)、read()「リソースが一時的に利用できません」というエラーで失敗します。
stty -af /dev/cu.usbserial-A4017CQY設定は問題なく表示されますが、 のようなコマンドで変更しようとするstty -f /dev/cu.usbserial-A4017CQY -clocalと、 を連続して呼び出して表示すると変更されたように見えますstty。
読み取り/書き込みの前にデバイスの準備が整うのを待っていた場合select()、すぐに書き込みの準備ができていると報告されますが、読み取りはできません。write()これは、失敗しながら、文句なしに完了する方法とゲル化しread()ます。書き込まれたデータが実際にデバイスに到達することはないことに注意してください。
これをデバッグするために書いたテスト プログラム全体を以下に示します。
shell - 非対話モードの stty
非対話モードのリモート サーバーでスクリプトを介してコマンドを実行しています。リンクを調べたところ、以下のエラーは非対話モードで stty を実行していることが原因であることがわかりました。[URL="http://compgroups.net/comp.unix.shell/stty-invalid-argument-using-ssh /506594"] http://compgroups.net/comp.unix.shell/stty-invalid-argument-using-ssh/506594[/URL]
stty は、端末にパスワードを表示しないために使用されます。しかし、私は stty: standard input: Invalid argument as in output を取得しています。
私の出力でこのエラーを取り除く/克服する方法。
terminal - ターミナルで Ctrl キーが検出されない
Mac ターミナルに問題があります。ctrl キーを検出できなくなったため、実行中のタスクを停止するなどのショートカットを使用できなくなりました。 +^Cを押すと、ターミナルは「c」文字のみをエコーするためです。ctrlC
私は試してみましたがstty -a、intrは問題ないようです:
それを解決する方法について何か考えはありますか?