Làm cách nào để xóa / xóa chức năng shell?


180

Tôi đã làm điều này:

$ z() { echo 'hello world'; }

Làm sao để tôi bỏ nó đi?

Câu trả lời:


271
unset -f z

Sẽ bỏ đặt hàm có tên z. Một vài người đã trả lời:

unset z

nhưng nếu bạn có một hàm và một biến có tên z thì chỉ có biến sẽ không được đặt, không phải là hàm.


Lưu ý rằng điều này áp dụng cho các shell tuân thủ POSIX , không chỉ Bash.
Franklin Yu

2

Trong Zsh:

unfunction z

Đó là một tên khác (có thể nói là tốt hơn) cho unhash -f zhoặc unset -f zphù hợp với phần còn lại của gia đình:

  • unset
  • unhash
  • unalias
  • unlimit
  • unsetopt

Khi nghi ngờ với những điều như vậy, gõ un<tab>để xem danh sách đầy đủ.

(Hơi liên quan: Nó cũng tốt đẹp để có chức năng / bí danh như realiases, refunctions, resetopts, reenv, vv để "tái source" các tập tin tương ứng, nếu bạn đã tách / nhóm chúng như vậy.)

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.