История изменений
Исправление vodz, (текущая версия) :
Про $ вам уже сказали, но в принципе написано плохо. Во-первых, у вас не правильно посчитает количество файлов, если в именах будет перевод строки. Сообщение о правильности с первого раза не выведется, а потом, цикл никогда не завершится. Всё что одинаковое надо вносить внутрь цикла.
Короче, надо как-то так:
#!/usr/bin/env bash
declare -i m
for f in *.*; do
m+=1
done
echo 'Hello! Guess the number of files in the current directory.'
while read -p 'Enter the number: ' n; do
if [[ n -lt m ]]; then
echo 'You are not right. Too low!'
elif [[ n -gt m ]]; then
echo 'You are not right. Too high!'
else
echo 'Congratiulations! You are right!'
break
fi
done
Исходная версия vodz, :
Про $ вам уже сказали, но в принципе написано плохо. Во-первых, у вас не правильно посчитает количество файлов, если в именах будет перевод строки. Сообщение о правильности с первого раза не выведется, а потом, цикл никогда не завершится. Всё что одинаковое надо вносить внутрь цикла.
Короче, надо как-то так:
#!/usr/bin/env bash
declare -i m
for f in *.*; do
m+=1
done
echo $m
echo 'Hello! Guess the number of files in the current directory.'
while read -p 'Enter the number: ' n; do
if [[ n -lt m ]]; then
echo 'You are not right. Too low!'
elif [[ n -gt m ]]; then
echo 'You are not right. Too high!'
else
echo 'Congratiulations! You are right!'
break
fi
done