Saya memiliki skrip yang memberi saya kendali yang baik atas kecerahan lampu latar saya dan sudo
harus dijalankan. Ini pada dasarnya ini:
backlight="/sys/class/backlight/acpi_video0/brightness"
echo $1 | tee $backlight
dan tinggal di ~/bin/backlight-adjust
. Script memerlukan sudo
hak istimewa, karena tee $backlight
menulis ke lokasi yang istimewa. Jadi itu akan gagal jika tidak dijalankan sudo
.
Pendekatan ini memiliki masalah, karena saya tidak bisa hanya berjalan sudo backlight-adjust
, karena ~/bin
tidak ada di $PATH
dalam sudo
lingkungan, hanya di lingkungan saya. Jadi saya harus menjalankan sudo env "PATH=$PATH" backlight-adjust
atau yang serupa.
Atau, saya bisa menulisnya seperti ini:
backlight="/sys/class/backlight/acpi_video0/brightness"
echo $1 | sudo tee $backlight
dan minta saya untuk memasukkan kata sandi.
Pendekatan kedua bekerja lebih baik untuk saya karena saya tidak harus ingat untuk mengetikkan sudo; itu akan meminta saya. Dan aku bisa menjaga $PATH
keutuhanku. Secara keseluruhan ini terasa lebih nyaman, tetapi adakah alasan mengapa saya tidak boleh melakukannya dengan cara kedua?
(Saya menjalankan Xubuntu 14.04 dan shell saya GNU bash 4.2.45, jika itu membuat perbedaan.)
sudo
benar - benar membuat saya$PATH
secara default jadi saya tidak memiliki masalah ini.