Khi bạn đăng nhập, tập tin ~/.profile
được đọc bởi shell đăng nhập (ksh cho bạn). Bạn có thể hướng dẫn shell đăng nhập đó tự thay thế bằng bash. Bạn nên thực hiện một số biện pháp phòng ngừa:
- Chỉ thay thế vỏ đăng nhập nếu nó tương tác. Điều này rất quan trọng: mặt khác, đăng nhập trong chế độ đồ họa có thể không hoạt động (điều này phụ thuộc vào hệ thống: một số nhưng không phải tất cả các hệ thống đọc
~/.profile
khi đăng nhập qua xdm hoặc tương tự) và các thành ngữ như ssh foo '. ~/.profile; mycommand'
sẽ thất bại.
- Kiểm tra xem bash có sẵn không, vì vậy bạn vẫn có thể đăng nhập nếu thực thi không có vì lý do nào đó.
Bạn có lựa chọn có nên chạy bash như một vỏ đăng nhập hay không. Sự khác biệt lớn duy nhất trong việc biến nó thành một vỏ đăng nhập là nó sẽ tải ~/.bash_profile
hoặc ~/.profile
. Vì vậy, nếu bạn chạy bash như shell đăng nhập, hãy thật cẩn thận để có ~/.bash_profile
hoặc cẩn thận không thực hiện bash đệ quy từ đó ~/.profile
. Không có lợi thế thực sự của việc ~/.profile
thực hiện bằng bash hơn là ksh, vì vậy tôi khuyên bạn không nên làm điều đó.
Đồng thời đặt SHELL
biến môi trường thành bash, để các chương trình như trình giả lập thiết bị đầu cuối sẽ gọi shell đó.
Đây là mã để chuyển sang bash. Đặt nó vào cuối của ~/.profile
.
case $- in
*i*)
# Interactive session. Try switching to bash.
if [ -z "$BASH" ]; then # do nothing if running under bash already
bash=$(command -v bash)
if [ -x "$bash" ]; then
export SHELL="$bash"
exec "$bash"
fi
fi
esac