[+] Wprowadzanie danych - BASH

Potrzebujesz pomocy z C, C++, perl, python, itp.
patrykcd
Posty: 1
Rejestracja: 31 marca 2013, 18:24

[+] Wprowadzanie danych - BASH

Post autor: patrykcd »

Witam.
Uczę się basha od paru dni i już mam pierwszy problem.

Czy da się zrobić tak, żeby można było wprowadzać dane, ale bez wciskania enter?

Chciałbym, aby skrypt liczył od 3 do 0 i w międzyczasie dało się wpisać 'y' lub 'n', a gdy doliczy do zera ma domyślnie wybrać 'n' i wyświetlić 'wybrano no' bez pomocy użytkownika.

Pozdrawiam.

Kod: Zaznacz cały

#!/bin/bash
echo -n "wybierz y/n("
i=3
until [ $i == -1 ]
do
  echo -n -e "$i)\b\b"
  read yes_or_no
  if [ $i == 0 ]
  then 
    yes_or_no="n"
  fi
  
  case $yes_or_no in
    "y" ) echo "wybrano yes"
          break;;
    "n" ) echo "wybrano no"
          break;;
    * ) echo "nic nie wybrałeś" 
  esac


  ((--i))
  sleep 1
done

Edycja:

Mam rozwiązanie:

Kod: Zaznacz cały

#!/bin/bash
i=3
until [ $i == -1 ]
do
  echo -n "wybierz y/n("
  echo -n -e "$i)\b\b"
  read -s -n 1 -t 5 yes_or_no
  if [ $i == 0 ]
  then 
    yes_or_no="n"
  fi
 
  case $yes_or_no in
    "y" ) echo "wybrano yes"
          break;;
    "n" ) echo "wybrano no"
          break;;
    * ) echo "nic nie wybrałeś" 
  esac
 
  ((--i))
  sleep 1
done
ODPOWIEDZ