То, что вы сделали, кажется прекрасным, но я привел пример с использованием seq для справки.
Расширяя то, что вы делаете, вы можете проверить ввод, используя что-то вроде while l oop или заявление о случае. В основном проверьте, что пользователь ввел что-то от 1 до 9 или 10. В этом случае я использовал оператор IF с регулярным выражением. Посмотрим, сможете ли вы сделать то же самое для входного слова? возможно, проверьте, что он не пустой, и заставьте их ввести что-то, что содержит числа и / или символы et c?
Пример:
#!/bin/bash
echo "Please input a word:"
read -r word
# force a while number is not 1-9 or 10 keep asking for a number.
while [[ 1 ]] ; do
echo "Input value from 1 - 10"
read -r inval
if [[ $inval =~ ^[1-9]$|10 ]] ;then
echo "Number $inval is a good pick, lets go!"
break
else
echo "Sorry, please choose from 1-10"
fi
done
# simple example using 'seq' from 1 to inputted value
for i in $(seq 1 "${inval}"); do
echo "${word}"
done
Пример вывода:
Please input a word:
Hello World !
Input value from 1 - 10
11
Sorry, please choose from 1-10
Input value from 1 - 10
what
Sorry, please choose from 1-10
Input value from 1 - 10
10
Number 10 is a good pick, lets go!
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Hello World !
Дополнительная литература: Как выполнить итерацию по диапазону чисел, определенному переменными в Bash?