Tôi muốn tùy chỉnh chức năng của cd
lệ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 cd
hợp.
Làm thế nào để tôi tham chiếu tích cd
hợ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.
pushd
không hỗ trợ -P
. Nhưng bạn đã đúng, như thể hiện trong câu hỏi có function cd
vẻ 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 ../
:)?