GNU/Linux >> Belajar Linux >  >> Linux

Cara membaca hanya satu karakter dalam skrip shell

Di ksh pada dasarnya Anda dapat melakukan:

stty raw
REPLY=$(dd bs=1 count=1 2> /dev/null)
stty -raw

read -n1 berfungsi untuk bash

stty raw mode mencegah ctrl-c bekerja dan dapat membuat Anda terjebak dalam loop input tanpa jalan keluar. Halaman manual juga mengatakan stty -raw tidak dijamin untuk mengembalikan terminal Anda ke keadaan yang sama.

Jadi, bangun jawaban dtmilano menggunakan stty -icanon -echo menghindari masalah-masalah itu.

#/bin/ksh
## /bin/{ksh,sh,zsh,...}

# read_char var
read_char() {
  stty -icanon -echo
  eval "$1=\$(dd bs=1 count=1 2>/dev/null)"
  stty icanon echo
}

read_char char
echo "got $char"

Di bash, read bisa melakukannya:

read -n1 ans

Linux
  1. Bagaimana Memanggil Script Shell Lain Seperti Subrutin?

  2. Bagaimana Cara Membaca Seluruh Script Shell Sebelum Mengeksekusinya?

  3. Cara menjalankan skrip shell saat startup

  1. Bagaimana Menangani Switch Dalam Script Shell?

  2. Cara membaca file .properties yang berisi kunci yang memiliki karakter titik menggunakan skrip Shell

  3. Cara menambahkan pengguna ke Linux melalui skrip shell

  1. Bagaimana Membuat File Sementara Di Shell Script?

  2. Bagaimana Cara Membaca Tag Mp3 Di Shell?

  3. Bagaimana Cara Membuat Animasi Rotasi Menggunakan Shell Script?