2012-06-23 20 views
8

tôi có thể thấy rằng đây là lỗi 'bình thường', nhưng không thể tìm thấy giải pháp trong trường hợp của tôi ...Chạy công việc định kỳ tạo ra một bất ngờ EOF lỗi trong khi tìm kiếm phù hợp với ' `'

Chạy việc Crontab với:

expr `date +%W` % 2 > /dev/null && curl https://mysite.com/myscript 

Nó gây ra lỗi:

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``' 
/bin/sh: -c: line 1: syntax error: unexpected end of file 

bạn có thể giúp tôi làm thế nào để tránh được chúng? Cảm ơn bạn rất nhiều trước!

Trả lời

14

Bạn phải thoát khỏi ký tự %. man 5 crontab nói:

Percent-signs (%) in the command, unless escaped with backslash (\), 
    will be changed into newline characters, and all data after the first % 
    will be sent to the command as standard input. 
+2

này mảnh nhỏ của kiến ​​thức giúp tôi rất nhiều. Tôi không thể hiểu tại sao 'date +% Y-% m-% d_% H-% M-% S' hoạt động hoàn hảo trong kịch bản nhưng không hoạt động trong dòng lệnh (daisy cained crontab). Cảm ơn Daniel! – Vacilando

1

Cố gắng thoát khỏi % VÀ không sử dụng backticks để encose date -Command. Đừng gửi kèm nó với $():

expr $(date +\%W) % 2 > /dev/null && curl https://mysite.com/myscript 

HOẶC

expr $(date +\%W % 2) > /dev/null && curl https://mysite.com/myscript 
Các vấn đề liên quan