Tôi đã thấy đoạn mã sau trong chuỗi này: Cách thay đổi từ csh sang bash làm shell mặc định
sleep 2
if (-x /usr/local/bin/bash) then
exec /bin/sh -c '. ~/.profile; exec /usr/local/bin/bash'
endif
Hiểu biết của tôi là nếu bạn đặt đoạn mã này vào ~/.login
nó sẽ gọi bash
khi bạn đăng nhập.
Tôi có một tình huống tương tự khi tôi muốn sử dụng một đoạn tương tự để gọi một phiên bản khác với phiên bản zsh
mặc định mà tôi đăng nhập. Một phần lý do tại sao tôi gặp phải sự cố này là vì tôi không thể chọn phiên bản mong muốn của tôi zsh
trong các tùy chọn được phép chsh
và tôi không có quyền quản trị viên.
Với cái này:
- Làm cách nào để thay đổi đoạn mã trên để thực hiện việc này khi chuyển đổi giữa các phiên bản khác nhau của zsh?
- Tại sao hai
exec
lệnh cần thiết trong đoạn trích ở trên? Họ làm gì? Ngoài ra, tại sao đoạn mã trên sử dụngsh
vàbash
(người dùng có nghĩa vụ phải đăng nhậpcsh
)
.zprofile
:if [[ $ZSH_VERSION != 4.3.14 ]]; then exec /n/sw/zsh-4.3.14/bin/zsh --login fi
và điều đó dường như có hiệu quả!