Làm thế nào tôi có thể tạo một hàm trong zsh gọi một lệnh hiện có cùng tên?


9

Làm thế nào tôi có thể viết một hàm trong zshđó gọi một lệnh hiện có cùng tên với chính hàm đó? Ví dụ: tôi đã thử điều này để minh họa cho câu hỏi của mình:

function ls 
{
    ls -l $1 $2 $3
}

Khi tôi thực hiện nó với ls *tôi nhận được như sau:

ls:1: maximum nested function level reached

Tôi giả sử điều này là do hàm đang được gọi đệ quy. Làm thế nào tôi có thể tránh điều đó?

Đây là một ví dụ thô thiển, và trong trường hợp này, một bí danh sẽ thực hiện công việc, nhưng tôi có một ví dụ phức tạp hơn trong đó một bí danh không phù hợp và vì vậy tôi sẽ cần phải viết một hàm.

Câu trả lời:


25

Điều gì đang xảy ra là bạn đang gọi đệ quy lschức năng của mình . Để sử dụng nhị phân, bạn có thể sử dụng commandnội dung của ZSH .

function ls {
    command ls -l "$@"
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.