GNU/Linux >> Linux の 問題 >  >> Linux

Stdin入力の終了を通知する方法は?

  1. Bashで、終了信号が
    ここのドキュメントで変更できることを学びました。
    しかし、デフォルトでは、どのようにして
    stdin入力の終了を通知できますか?
  2. catと
    chardetを使用すると、Ctrl+dで終了したことを
    信号で送信できることがわかりました。しかし、
    Ctrl+dと
    Ctrl+ cは、実行中のコマンドの実行を終了する
    に似ていることを覚えているようです。だから
    私は間違っていますか?

承認された回答:

Ctrl + D 、端末の行の先頭に入力すると、入力の終わりを示します。これはUNIXの意味でのシグナルではありません。アプリケーションが端末から読み取りを行っていて、ユーザーが Ctrl + Dを押したとき 、ファイルの終わりに到達したことがアプリケーションに通知されます(ファイルから読み取っていて最後のバイトを通過した場合と同じように)。

Ctrl + C シグナルSIGINTを送信します。デフォルトでは、SIGINT(割り込みシグナル)はフォアグラウンドアプリケーションを強制終了しますが、アプリケーションはシグナルをキャッチし、別の方法で反応することができます(たとえば、シェル自体がシグナルをキャッチし、入力を開始した行を中止しますが、終了すると、新しいプロンプトが表示され、新しいコマンドラインを待ちます。

sttyを使用して、ファイルの終わりとSIGINTに関連付けられている文字を変更できます。 コマンド、例: stty eof a aを作成します ファイルの終わり文字、およびstty intr ^- SIGINT文字を無効にします。これが役立つことはめったにありません。


Linux
  1. basenameコマンドの使用方法は?

  2. ファイルの最後に改行を追加するにはどうすればよいですか?

  3. パイプが空であるかどうかを確認し、空でない場合はデータに対してコマンドを実行する方法は?

  1. 「ifs」?

  2. Raspberry Pi 3 で画面を回転させる方法

  3. 最新の Ubuntu に Signal Messaging アプリをインストールする方法

  1. Ubuntu でホスト名を変更する方法

  2. APNS を有効にするために iptables CentOS 6 でポート 2195 を開く方法

  3. rpm の内容を抽出するにはどうすればよいですか?