Shell mặc định cho roottrên OS X là /bin/sh. Nó shcũng là một phiên bản của bash, nhưng khi được gọi với tên shBash :
cố gắng bắt chước hành vi khởi động của các phiên bản lịch sử shcàng gần càng tốt, đồng thời tuân thủ tiêu chuẩn POSIX.
Khi được gọi dưới dạng shell đăng nhập tương tác hoặc dưới dạng shell không tương tác với --logintùy chọn, trước tiên, nó sẽ cố gắng đọc và thực thi các lệnh từ /etc/profilevà ~/.profile, theo thứ tự đó. ... một shell được gọi vì sh không cố đọc và thực thi các lệnh từ bất kỳ tệp khởi động nào khác
Đó là, nó hoàn toàn không đọc .bash_profile, bất kể nó có được gọi là shell đăng nhập hay không . Bạn có thể sử dụng .profilethay thế, hoặc thậm chí liên kết tượng trưng với nhau. Nếu bạn khởi chạy shell đăng nhập với su -l, .profileđược tải khi khởi động, nhưng .bash_profilesẽ không bao giờ.
Bạn cũng có thể sử dụngdscl để thay đổi vỏ rễ của (lưu ý rằng /etc/passwdlà không dùng để xác định vỏ trên OS X). Bạn có thể kiểm tra shell hiện tại của root với dscl . -read /Users/root UserShell; tham khảo tài liệu và suy nghĩ cẩn thận trước khi thay đổi nó thành một cái gì đó khác.
Một cách tiếp cận khác chỉ đơn giản là thay đổi sulời mời của bạn để buộc thực thi bashngay lập tức.
Đưa ra những gì bạn đã nói, có lẽ tôi muốn giới thiệu liên kết tượng trưng, nhưng bạn có thể muốn xem xét các thay đổi mà chế độ POSIX của Bash thực hiện và quyết định xem bạn có muốn có chúng hay không.