Это не так, как работают циклы. Ваша конструкция будет работать до тех пор, пока dd
не завершится. Если вы хотите прекратить его через c секунд, вы должны либо вызвать его с помощью timeout
(почти наверняка предпочтительное решение), либо явно отправить сигнал. например, что-то вроде:
dd if=/dev/zero of=/dev/null &
sleep $c
kill $!
Использование &
в качестве ограничителя команды приводит к асинхронному запуску dd
(он же "в фоновом режиме"), поэтому управление немедленно возвращается в оболочку, сохраняя pid команды dd
в переменной $!
. Затем оболочка немного спит и посылает сигнал на прекращение dd
.