Tôi muốn tùy chỉnh chức năng của cdlệnh theo nhu cầu của tôi.
Tôi đã định nghĩa hàm sau -
function cd () { cd "$@" && pushd "$@"; }
Mục đích của chức năng này là tự động đẩy thư mục lên ngăn xếp để nó giúp tôi tiết kiệm công sức để gõ thủ công pushd .mỗi lần.
Tuy nhiên, hàm trên là một hàm đệ quy vô hạn, vì lệnh gọi cdđược hiểu là chính hàm đó chứ không phải là hàm tích cdhợp.
Làm thế nào để tôi tham chiếu tích cdhợp trong chức năng này?
Tôi biết rằng bí danh có thể được thoát bằng cách sử dụng \. Cách để thoát các chức năng hoặc tham chiếu được xây dựng theo cách rõ ràng hơn là gì?
Lưu ý: Tôi không muốn đổi tên chức năng của mình thành bất kỳ điều gì khác.
pushdkhông hỗ trợ -P. Nhưng bạn đã đúng, như thể hiện trong câu hỏi có function cdvẻ hơi sai, vì nó đã thay đổi thư mục hai lần.
alias cd=pushd? Bạn mong đợi điều gì sẽ xảy ra khi bạn cd vào thứ gì đó không phải là một đường dẫn tuyệt đối (ví dụcd ../:)?