officialandrey
@officialandrey

В чем ошибка в коде?

Если введи y или Y, то вывод YES
Если ввели n или N, то вывод NO
Всегда выводит YES
#!/bin/bash
read str
if [ $str == "y*" -o $str == "Y*" ]
then
	echo "YES"
else
	if [ $str == "n*" -o $str == "N*" ]
	then
		echo "NO"
	fi
fi
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 2
xotkot
@xotkot
хорошо есть и хорошо весьма
Если кто-то знает как можно еще минимизировать и ускорить код, прошу показать)

read -e -n 1 -p "ответ ? [Y/n] " y
if [[ "$y" =~ ^[y,Y] ]]
  then echo "OK"
  else echo "NO"
fi


даже еще чуть проще можно так как мы и так считываем один символ:
read -e -n 1 -p "ответ ? [Y/n] " y
if [[ $y =~ [yY] ]]
  then echo "OK"
  else echo "NO"
fi
Ответ написан
officialandrey
@officialandrey Автор вопроса
Вот переписал так:
#!/bin/bash
read str 
if [ $str == "y" ] || [ $str == "Y" ] 
then echo "YES" 
else echo "NO" 
fi

Все работает!
Если кто-то знает как можно еще минимизировать и ускорить код, прошу показать)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы