ฉันมีสคริปต์ที่ให้การควบคุมความสว่างแบ็คไลท์ของฉันอย่างละเอียดและต้องsudoดำเนินการ เป็นหลักนี้:
backlight="/sys/class/backlight/acpi_video0/brightness"
echo $1 | tee $backlight
~/bin/backlight-adjustและชีวิตที่ สคริปต์ต้องการsudoสิทธิ์เนื่องจากtee $backlightกำลังเขียนไปยังตำแหน่งที่มีสิทธิ์ sudoดังนั้นมันจะล้มเหลวถ้ามันไม่ได้ทำงานด้วย
วิธีการนี้มีปัญหาเพราะฉันไม่สามารถวิ่งsudo backlight-adjustได้เพราะ~/binไม่ได้อยู่$PATHในsudoสภาพแวดล้อม แต่ในสภาพแวดล้อมของฉันเท่านั้น ดังนั้นฉันต้องวิ่งsudo env "PATH=$PATH" backlight-adjustหรืออะไรทำนองนั้น
หรือฉันอาจจะเขียนมันแบบนี้
backlight="/sys/class/backlight/acpi_video0/brightness"
echo $1 | sudo tee $backlight
และแจ้งรหัสผ่านให้ฉัน
วิธีที่สองใช้งานได้ดีกว่าสำหรับฉันเพราะฉันไม่ต้องจำให้พิมพ์ sudo; มันจะทำให้ฉัน และฉันสามารถรักษา$PATHเหมือนเดิม โดยรวมแล้วรู้สึกสะดวกกว่า แต่มีเหตุผลใดที่ฉันไม่ควรทำอย่างที่สอง?
(ฉันใช้ Xubuntu 14.04 และเชลล์ของฉันคือ GNU ทุบตี 4.2.45 ถ้านั่นสร้างความแตกต่าง)
sudoจะเก็บ$PATHตามจริงดังนั้นฉันจึงไม่มีปัญหานี้