Tôi có một kịch bản cho phép tôi kiểm soát chi tiết độ sáng của đèn nền và yêu cầu sudochạy. Về cơ bản là thế này:
backlight="/sys/class/backlight/acpi_video0/brightness"
echo $1 | tee $backlight
và sống tại ~/bin/backlight-adjust. Kịch bản cần sudođặc quyền, bởi vì tee $backlightđang viết đến một vị trí đặc quyền. Vì vậy, nó sẽ thất bại nếu nó không chạy với sudo.
Cách tiếp cận này có một vấn đề, vì tôi không thể chỉ cần chạy sudo backlight-adjust, vì ~/binkhông nằm trong $PATHtrong sudomôi trường, chỉ trong môi trường của tôi. Vì vậy, tôi phải chạy sudo env "PATH=$PATH" backlight-adjusthoặc một cái gì đó tương tự.
Ngoài ra, tôi có thể đã viết nó như thế này:
backlight="/sys/class/backlight/acpi_video0/brightness"
echo $1 | sudo tee $backlight
và nhắc tôi nhập mật khẩu.
Cách tiếp cận thứ hai hoạt động tốt hơn đối với tôi vì tôi không phải nhớ gõ sudo; nó sẽ nhắc tôi Và tôi có thể giữ $PATHnguyên vẹn. Điều này cảm thấy thuận tiện hơn về tổng thể, nhưng có bất kỳ lý do tại sao tôi không nên làm theo cách thứ hai?
(Tôi đang chạy Xubfox 14.04 và trình bao của tôi là GNU bash 4.2.45, nếu điều đó tạo ra sự khác biệt.)
sudothực sự giữ nó$PATHtheo mặc định vì vậy tôi không gặp phải vấn đề này.