Я изучаю сценарии оболочки, где я создал shell(.sh) file
для выполнения определенной задачи. Я хочу выполнить итерацию по массиву и для каждого объекта этого массива выполнить определенную операцию. Если эта операция занимает больше минуты, переходите к следующему объекту и так далее.
К вашему сведению, это мой первый. sh файл.
Проблемы:
- Я просто могу получить результат первого значение, он не перемещается к следующему объекту. Кроме того, в терминале похоже, что он просто работает в фоновом режиме. Мне нужно принудительно остановить его (ctrl + c).
- Тайм-аут - единственный вариант (на основе моих исследований это то, что я нашел)?
Код:
#!/bin/sh
LOGFILE="MyLog.txt"
ENDPOINT=SOME_VALUE
PREFIX=Output
declare -a numbers=(1061 1071 1107 1158 1271 1273 1275 1276 1278 1279 1282 1288 1305 1406 1447 1455 1472 1488 1490 1491 1492 1572 1718)
for number in "${numbers[@]}"
do
echo "GetLogs: $number" >> $LOGFILE
SOME_OPERATION >> $LOGFILE # If this takes more than 1m then move on to next
timeout 1m >> $LOGFILE # Is this correct approach?
done