GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Memberi Sinyal Akhir Dari Input Stdin?

  1. Di Bash, saya belajar bahwa sinyal
    akhir dapat diubah di sini
    dokumen. Tetapi secara default, bagaimana saya
    memberi sinyal akhir input stdin?
  2. Saya kebetulan menemukan bahwa dengan cat dan
    chardet, input stdin mereka dapat
    ditandai sebagai selesai dengan Ctrl+d. Tapi
    Sepertinya saya ingat bahwa Ctrl+d dan
    Ctrl+c mirip dengan mengakhiri
    eksekusi dari perintah yang sedang berjalan. Jadi
    apakah saya salah?

Jawaban yang Diterima:

Ctrl+D , ketika diketik di awal baris pada terminal, menandakan akhir dari input. Ini bukan sinyal dalam pengertian unix:ketika aplikasi membaca dari terminal dan pengguna menekan Ctrl+D , aplikasi akan diberitahu bahwa akhir file telah tercapai (sama seperti jika sedang membaca dari file dan telah melewati byte terakhir).

Ctrl+C tidak mengirim sinyal, SIGINT. Secara default SIGINT (sinyal interupsi) mematikan aplikasi latar depan, tetapi aplikasi dapat menangkap sinyal dan bereaksi dalam beberapa cara yang berbeda (misalnya, shell itu sendiri menangkap sinyal dan membatalkan baris yang telah Anda mulai ketik, tetapi tidak ' t keluar, ini menunjukkan prompt baru dan menunggu baris perintah baru).

Anda dapat mengubah karakter yang terkait dengan end-of-file dan SIGINT dengan stty perintah, mis. stty eof a akan membuat a karakter akhir file, dan stty intr ^- akan menonaktifkan karakter SIGINT. Ini jarang berguna.


Linux
  1. Bagaimana Linux datang ke mainframe

  2. Bagaimana cara menggunakan perintah nama dasar?

  3. Bagaimana Cara Membuat Iconv Mengganti File Input Dengan Output yang Dikonversi?

  1. Bagaimana cara memeriksa apakah pipa kosong dan menjalankan perintah pada data jika tidak?

  2. Bagaimana Cara Menginstal R 3.3.1 Di Direktori Sendiri?

  3. 'Seandainya'?

  1. Cara memutar layar pada Raspberry Pi 3

  2. Bagaimana cara mengubah nama host di Ubuntu

  3. Bagaimana cara kerja *nix pseudo-terminal? Apa saluran master/budak?