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 sudo
chạ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ì ~/bin
không nằm trong $PATH
trong sudo
mô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-adjust
hoặ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ữ $PATH
nguyê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.)
sudo
thực sự giữ nó$PATH
theo mặc định vì vậy tôi không gặp phải vấn đề này.