Использование цикла for с командой чтения

sudo mkfs.ntfs /dev/sda1 обнулит раздел, поэтому ваш загрузочный раздел Windows исчезнет. К счастью, все ваши данные все еще должны существовать в /dev/sda2, если я правильно понял образ, которым вы поделились.

Вам потребуется восстановить загрузочный раздел Windows с помощью эквивалента аварийного диска Microsoft. Как только вы снова сможете загружать Windows, вы сможете повторно -добавить запись, указывающую на ваши разделы Linux.

0
05.05.2020, 16:42
3 ответа

Можно сделать:

#!/bin/bash
echo -n "Enter a number: "
read number
for ((i=number; i>0; i--))
do
  echo $i
done
echo "Go!"

Или:

echo -n "Enter a number: "
read number
while ((number>0))
do
  echo $number
  let number--
done
echo "Go!"
0
28.04.2021, 23:16

Используйтеseq:

#!/bin/bash
echo -n "Enter a number > "
read number
seq "$number" -1 1
echo "Go!"

Выход:

Enter a number > 8
8
7
6
5
4
3
2
1
Go!

Чтобы немного улучшить свой код, вы можете вывести приглашение наstderr:

>&2 echo -n "Enter a number > "

или используйте опцию -pиз read:

.
read -p 'enter a number > ' number
4
28.04.2021, 23:16

Причина, по которой ваш код не работает должным образом, связана с

  1. чтение числа на каждой итерации в цикле и
  2. никогда не уменьшать/увеличивать число в цикле whileили альтернативно
  3. никогда не создается правильный диапазон для повторения цикла for.

В zshэто можно сделать с помощью

read '?Enter a number > '
printf '%s\n' {1..$REPLY} 'Go!'

Это считывает данные пользователя в REPLY, а затем использует эти данные в раскрытии фигурных скобок, которое создает список чисел (, если пользователь ввел допустимое число ). В конце списка мы добавляем строку Go!, а затем печатаем все эти строки с новыми строками в качестве разделителей, используя printf.

1
28.04.2021, 23:16

Теги

Похожие вопросы