Tôi muốn tạo một tập lệnh bash phải được thực thi bằng sudo nhưng nên tính đến tên của người dùng không phải sudo đã thực thi nó. Vì vậy, nếu người dùng bobchạy sudo ./myscript.shtôi muốn myscript.shbiết boblà người đã thực hiện nó.
Hãy nhìn vào bên trong myscript.sh:
USER=$(whoami)
# Do something that takes into account the username.
Làm thế nào tôi có thể biết tên của người dùng đã sinh ra quá trình? Cụ thể hơn, tôi nên sử dụng cái gì thay vì whoamiđể có được bobvà không root?
#!/usr/bin/env bashtrên các tập lệnh bash của tôi.
shhoặc một cái gì đó khác.
USER=$(whoami). Lưu ý rằngUSERđã tồn tại như một biến nội bộ shell. Ngoài ra, nếu đó là tập lệnh bash, đừng chạy nó bằng cách sử dụngshtập hợp các tính năng tương thích POSIX.