Bagaimana cara saya menghapus / menghapus fungsi shell?

180

Saya telah melakukan ini:

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

Bagaimana saya menyingkirkannya?

terlalu banyak php
sumber

Jawaban:

271
unset -f z

Akan membatalkan fungsi yang bernama z. Sepasang orang menjawab dengan:

unset z

tetapi jika Anda memiliki fungsi dan variabel bernama z hanya variabel akan tidak disetel, bukan fungsi.

Robert Gamble
sumber
Perhatikan bahwa ini berlaku untuk shell yang mematuhi POSIX , bukan hanya Bash.
Franklin Yu
2

Dalam Zsh:

unfunction z

Itu nama lain (bisa dibilang lebih baik) untuk unhash -f zatau unset -f zdan konsisten dengan anggota keluarga lainnya:

  • unset
  • unhash
  • unalias
  • unlimit
  • unsetopt

Jika ragu dengan hal-hal seperti itu, ketikkan un<tab>untuk melihat daftar lengkap.

(Sedikit terkait: Ini juga baik untuk memiliki fungsi / alias seperti realiases, refunctions, resetopts, reenv, dll untuk "ulang source" file masing-masing, jika Anda sudah dipisahkan / dikelompokkan mereka seperti itu.)

Micah Elliott
sumber