Như đã giải thích về các câu trả lời khác, bạn đã thay đổi thư mục, nhưng chỉ trong lớp vỏ phụ chạy tập lệnh . Điều này không ảnh hưởng đến vỏ cha.
Một giải pháp là sử dụng các hàm bash thay vì bash script ( sh
); bằng cách đặt mã bash script của bạn vào một hàm. Điều đó làm cho hàm có sẵn dưới dạng một lệnh và sau đó, điều này sẽ được thực thi mà không cần một tiến trình con và do đó, bất kỳ cd
lệnh nào sẽ tác động đến trình bao của người gọi.
Hàm Bash:
Một tính năng của cấu hình bash là lưu trữ các chức năng tùy chỉnh có thể chạy trong thiết bị đầu cuối hoặc trong các tập lệnh bash giống như cách bạn chạy ứng dụng / lệnh này cũng có thể được sử dụng làm lối tắt cho các lệnh dài.
Để làm cho chức năng của bạn hoạt động hiệu quả trên hệ thống, bạn sẽ cần sao chép chức năng của mình ở cuối một số tệp
/home/user/.bashrc
/home/user/.bash_profile
/root/.bashrc
/root/.bash_profile
Bạn có thể sudo kwrite /home/user/.bashrc /home/user/.bash_profile /root/.bashrc /root/.bash_profile
chỉnh sửa / tạo các tệp đó một cách nhanh chóng
Làm thế nào để :
Sao chép mã tập lệnh bash của bạn bên trong một hàm mới ở cuối tệp hồ sơ của bash và khởi động lại thiết bị đầu cuối của bạn, sau đó bạn có thể chạy cdd
hoặc bất cứ chức năng nào bạn đã viết.
Ví dụ tập lệnh
Tạo lối tắt đến cd ..
vớicdd
cdd() {
cd ..
}
phím tắt ls
ll() {
ls -l -h
}
phím tắt ls
lll() {
ls -l -h -a
}