Уже десятилетиями я пишу сценарии оболочек, но я не могу определить, в чем проблема с этим ... не так ли?
Получение ошибки: ./tasks.sh: строка 57: синтаксическая ошибка: неожиданный конец файла
НЕТ, это не в стиле dosmode lineendings.
#!/bin/sh
export TZ='US/Central'
export PATH="$PATH:$HOME/bin"
#### Function: die
die() { exit 0 ; }
#### Function: tasks dayname
tasks() { ls ${1}_* 2>/dev/null }
#### Function: runtasks task [task2]
runtasks() {
for TASK
do
DT=$(date '+%Y-%m-%d')
TM1=$(date '+%H:%M:%S')
EPOCH=$(date '+%s')
TSK=$($TASK)
TM2=$(date '+%H:%M:%S')
echo "$DT,$TM1,$TM2,$EPOCH,$TASK,$TSK"
done
}
# DAILY PROCESSING:
TASKDIR=$HOME/.daily
cd $TASKDIR 2>/dev/null || die
exec 2>> 0daily.err
DAY=$(date +%a|tr '[A-Z]' '[a-z]')
DEF="$DAY all"
OUT=''
# args can be all or a day else just use today + all for the daily tasks to run:
TODO="${1:-${DEF}}"
for WORK in $TODO
do
RAN=''
TASKS=''
case "$WORK" in
sun|mon|tue|wed|thu|fri|sat|all)
TASKS=$(tasks $WORK)
RAN=$(runtasks $TASKS)
if [ "$RAN" != "" ] ; then
OUT="${OUT}${RAN}"
fi
;;
*) break ;;
esac
done
test "$OUT" && echo "$OUT" >> 0daily.out
Смысл сценария в том, что при помощи планировщика раз в день выполняются любые задачи внутри $ HOME / .daily
например: .daily / all_backup_machine.sh
или: .daily / mon_compact_mail_folders.sh
Думаю, вы поняли меня.