У меня есть скрипт, который я пытаюсь запустить из cron.Когда я запускаю его из bash, он работает просто отлично.Однако, когда я позволяю cron сделать это, я получаю:
myscript.sh: строка 122: синтаксическая ошибка: неожиданный конец файла
То, что я хочу, этоспособ выполнить команду, как если бы это была работа cron, но сделайте это в моей оболочке.
В качестве примечания: кто-нибудь знает, что будет отличаться под cron?(в скрипте уже есть строка #!/bin/sh
)
Чтобы ответить на свой вопрос: я добавил это в свой crontab:
* * * * * bcs for ((i=$(date +\%M); i==$(date +\%M) ;)) ; do find ~/.crontemp/ -name '*.run' -exec "{}" ";" ; sleep 1; done`
и создал этот скрипт:
#!/bin/sh
tmp=$(mktemp ~/.crontemp/cron.XXXXX)
mknod $tmp.pipe p
mv $tmp $tmp.pre
echo $* '>' $tmp.pipe '1>&2' >> $tmp.pre
echo rm $tmp.run >> $tmp.pre
chmod 700 $tmp.pre
mv $tmp.pre $tmp.run
cat $tmp.pipe
rm $tmp.pipe
При этом я могу выполнить произвольную команду с задержкой не более одной секунды.
(И да, я знаю, что с этим связаны всевозможные проблемы безопасности)
проблема была fi
против if
проблемы.Doh!