
Я хочу запускать bash-скрипт, скажем, каждые 5 минут, с предопределенным аргументом в соответствии с циклом.
Например, я хочу использовать в качестве аргумента 1, 2, 5, 10, 15, 50, 15, 10, 5, 2, а затем начать цикл заново.
В идеале аргументы хранятся в файле или в скрипте, где я могу легко их редактировать, добавлять или удалять и т. д.
Как мне это сделать ?
Я мог бы сделать это с помощью одного скрипта, массива и, while [[ true ]]
но мне бы хотелось узнать, можно ли сделать это с помощью cron.
решение1
Вероятно, наиболее эффективным и одним из самых простых способов добиться этого было бы заставить скрипт обрабатывать отслеживание цикла магического числа, а не использовать аргументы. Что-то вроде этого:
#!/bin/bash
sequence=(1 2 5 10 15 50 15 10 5 2)
if [[ -r /var/tmp/myjob.seq ]]; then
seq="$(cat /var/tmp/myjob.seq)"
if [[ $seq -lt $((${#sequence[@]}-1)) ]]; then
nextseq=$(($seq+1))
else
nextseq=0
fi
echo $nextseq > /var/tmp/myjob.seq
else
seq=0
echo 1 > /var/tmp/myjob.seq
fi
magicnumber=${sequence[$seq]}
Затем вы можете обратиться к нему $magicnumber
позже в скрипте и использовать любое расписание cron, которое вам нравится.