#linux #bash #shell #unix
#linux #bash #оболочка #unix
Вопрос:
#!/bin/bash
read -p "Enter X in seconds: " X
read -p "Enter M(no. of times): " M
for i in {1.."$M"};
do
gcc hello.c -o hello
./hello
sleep "$X"
done;
Сценарий оболочки для запуска простого кода hello world C каждые X секунд в течение M раз, где
X и M — пользовательский ввод. Когда я запускаю скрипт, цикл for выполняется только один раз. Но когда я заменяю «$ M» любым числом, он выполняется хорошо. Итак, в чем моя ошибка здесь? Как я могу предоставить пользовательский ввод для итерации цикла?
Ответ №1:
Перед вычислением переменных происходит расширение в скобках Bash. Вместо этого вы можете использовать альтернативный цикл в стиле C:
for((i=1; i<=M; i )); do
....
done
Ответ №2:
for i in $(seq X Y); do
...
done