Bằng cách bắt đầu với #!/bin/sh -e, bạn làm cho tập lệnh của mình chạy với sh (đánh đậpIMHO tốt hơn), và -e thoát trên bất kỳ lỗi nào (người đàn ông đặt), vì vậy người ta không thể xử lý lỗi. Tập lệnh của bạn bị lỗi và cron đang cố gắng gửi nhật ký qua email cho bạn. cron không thể tìm thấy Tác nhân chuyển thư (MTA). Email chưa được định cấu hình trên hệ thống của bạn, ngay cả khi gửi đến địa phương.
Công việc chạy qua cron, hoặc hệ thống tập lệnh khởi động không chạy trong cùng một môi trường thời gian chạy mà bạn có trên máy tính để bàn của mình. hệ thống kịch bản khởi động được chạy như nguồn gốc. Không ai trong số bạn CON ĐƯỜNG thay đổi hoặc cài đặt biến môi trường khác từ ~/.bashrc được tự động lan truyền đến bạn cron Công việc. Ví dụ, không có $HIỂN THỊ, vì vậy các chương trình GUI cần được xử lý đặc biệt (đọc người đàn ông xhost).
Người ta có thể đặt các biến môi trường cho tất cả mọi người cron công việc trong crontab tập tin
Đọc người đàn ông 5 crontab.
Nhìn vào kết quả của echo "=== id ==="; id;echo "=== set ==="; set; echo "=== env ==="; env | sort;echo "=== bí danh ==="; bí danh trong mỗi môi trường của bạn.
Kể từ khi chỉ huy một phần của crontab theo mặc định, dòng được giải thích bởi /bin/sh, có cú pháp đơn giản hơn /bin/bash, tôi khuyên bạn nên có chỉ huy là một cuộc gọi đến một đánh đập tập lệnh (có thể thực thi, được gắn kết, bắt đầu bằng #!/bin/bash) thiết lập môi trường, sau đó gọi chương trình mong muốn.