Tôi có một hàm được định nghĩa trong tệp .bashrc của người dùng hiển thị tên nhánh git hiện tại của tôi tại dấu nhắc lệnh của tôi:
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
PS1="\\[$(tput setaf 7)\\]\\w \$(parse_git_branch)> \\[$(tput sgr0)\\]"
Khi tôi sudo để su, có vẻ như PS1 của tôi được chuyển qua và sau mỗi lệnh tôi nhận được lỗi bash: parse_git_branch: command not found
.
Tôi có thể thay đổi điều gì để khi tôi sudo cho người dùng khác, PS1 của nó được sử dụng chứ không phải của người dùng của tôi?
Chỉnh sửa: Có vẻ như điều này chỉ xảy ra sau khi tôi sử dụng nguồn virtualenv của Python. Nếu tôi sudo su trước khi tôi nguồn virtualenv, lỗi này không xảy ra.
.profile
chỉ được đọc bởi shell đăng nhập.
sudo su
có PS1 bình thường.