Đây là một cách khác, tránh trùng lặp
(crontab -l 2>/dev/null | fgrep -v "*/1 * * * * your_command"; echo "*/1 * * * * your_command") | crontab -
Và đây là một cách để thực hiện câu trả lời của JohnZ và tránh no crontab for usertin nhắn, hoặc nếu bạn cần phải hoạt động trong một set -eumôi trường loại và không thể có bất cứ điều gì trả lại thất bại (trong trường hợp đó là 2>/dev/nullphần tùy chọn):
( (crontab -l 2>/dev/null || echo "") ; echo "0 * * * * your_command") | sort -u - | crontab -
Hoặc nếu bạn muốn chia nhỏ mọi thứ để chúng dễ đọc hơn:
new_job="0 * * * * your_command"
preceding_cron_jobs=$(crontab -l || echo "")
(echo "$preceding_cron_jobs" ; echo "$new_job") | sort - | uniq - | crontab -
Hoặc tùy ý xóa mọi tham chiếu đến your_command (ví dụ: nếu lịch biểu đã thay đổi, bạn chỉ muốn nó được ghi lại một lần). Trong trường hợp này, chúng tôi không còn cần uniq(thêm tiền thưởng, thứ tự chèn cũng được giữ nguyên):
new_job="0 * * * * your_command"
preceding_cron_jobs=$(crontab -l || echo "")
preceding_cron_jobs=$(echo "$preceding_cron_jobs" | grep -v your_command )
(echo "$preceding_cron_jobs" ; echo "$new_job") | crontab -