ฉันต้องการเรียกใช้โปรแกรมที่ติดตั้งบน / opt / godi / sbin (ไดเรกทอรีที่กำหนดเอง) หากฉันเพิ่มไดเรกทอรีนั้นลงใน PATH ของฉันโดยเพิ่มบรรทัดต่อไปนี้ลงในไฟล์. bashrc ของฉัน
export PATH=$PATH:/opt/godi/bin:/opt/godi/sbin
จากนั้นฉันสามารถลองเรียกใช้คำสั่งได้ดี (ยกเว้นว่ามันล้มเหลวเพราะมันต้องการ sudo) อย่างไรก็ตามเมื่อฉันพยายามใช้ sudo:
sudo godi_console
ฉันได้รับข้อผิดพลาดดังต่อไปนี้
sudo: godi_console: command not found
การตรวจสอบตัวแปร PATH หลังจากใช้ sudo เผยให้เห็นว่ามันไม่รวม PATH เดียวกันกับที่ฉันเป็นผู้ใช้ปกติ:
$ sudo sh
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ทำไม PATH ถึงไม่เหมือนกัน? ฉันกำลังทำอะไรผิดหรือเปล่า? ฉันใช้ Debian Jessie และโชคไม่ดีที่ฉันไม่สามารถแก้ไขปัญหานี้ได้ด้วยการส่งผ่าน sudo ลิงก์สัมบูรณ์ไปยัง godi_console เนื่องจาก godi_console นั้นขึ้นอยู่กับเส้นทางที่ถูกตั้งค่าอย่างถูกต้อง
secure_path
และ / หรือ env_reset มีการกำหนดค่าเช่นในกรณีที่มีsudo
การปรับใช้จำนวนมากเช่นบน Debian
sudo -E godi_console
ดู-E
หมายถึง "รักษาสิ่งแวดล้อม"