ฉันได้กำหนดตัวแปร "SHELL" ในไฟล์ / etc / crontab:
[martin@martin ~]$ grep SHELL /etc/crontab
SHELL=/usr/local/bin/bash
[martin@martin ~]$ file /usr/local/bin/bash
/usr/local/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 8.0 (800107), stripped
[martin@martin ~]$
นอกจากนี้สคริปต์ของฉันทั้งหมดในไฟล์ / etc / crontab เริ่มต้นภายใต้ผู้ใช้ "มาร์ติน" อย่างไรก็ตาม/home/martin/.bash_profile (สำหรับ login shell) และ/home/martin/.bashrc (สำหรับ non-logging shell) มีตัวแปรบางอย่างที่ถูกละเว้นในกรณีของงาน cron แต่จะใช้ในกรณีที่ฉันเข้าสู่เครื่องผ่าน SSH หรือเปิดเซสชัน bash ใหม่ ทำไม cron ไม่สนใจตัวแปรเหล่านั้น cron ไม่ใช่แค่เรียกใช้งาน "/ usr / local / bin / bash my-script.sh" ด้วยการอนุญาตสำหรับผู้ใช้ "martin" หรือไม่?
.bashrc
มีบรรทัดที่ห้ามไม่ให้ทำงานในเชลล์ที่ไม่มีการโต้ตอบ