Jika Anda mengatur atau mengekspor variabel lingkungan di bash, Anda dapat menghapusnya . Jika Anda menetapkan alias di bash, Anda dapat membatalkannya . Tapi sepertinya tidak ada yang tidak berfungsi .
Pertimbangkan fungsi bash (sepele) ini, misalnya, diatur dalam file .bash_aliases dan dibaca pada inisialisasi shell.
function foo () { echo "bar" ; }
Bagaimana saya bisa menghapus definisi fungsi ini dari shell saya saat ini?
(Mengubah file inisialisasi atau memulai ulang shell tidak masuk hitungan.)
linux
command-line
bash
shell
quack quixote
sumber
sumber
unfunction
akan menjadi nama yang bagus untuk sebuah perintah :-)Jawaban:
Perintah bawaan yang tidak disetel mengambil opsi
-f
,, untuk menghapus fungsi:Bentuk entri yang tidak disetel di halaman bash :
Catatan:
-f
hanya benar-benar diperlukan jika ada variabel dengan nama yang sama. Jika Anda tidak memiliki variabel bernamafoo
, makaunset foo
akan menghapus fungsi.sumber
-f
parameter dalam ekspor tetapi belum menemukannya dalam kondisi tidak disetel . Terima kasih.unset
bukan perintah eksternal, ini adalah bagian dari shell ( bash dalam kasus ini); cobaman bash
dan temukan entri untukunset
(pengelolaannya cukup besar,unset
ada di bawahShell Builtin Commands
bagian).Lihat
help unset
:Tidak ada
unset --help
atau punman unset
sayangnya.sumber
man unset
karena merupakan built-in command dan untuk built-in perintah ada gantinyahelp
. Untuk beberapa perintah built-in itu ada executable eksternal juga. Jika ragu coba misalnyatype mycommnad
. Misalnyatype unset
dan itu akan menjawab Andaunset is a shell builtin
. Jika Anda ingin tahu apakah itu ada, executable juga cobawhich echo
(lain-buikt-in) dan ia akan mengatakan di mana itu. Ini--option_long
adalah khas dari perintah yang dapat dieksekusi. Cobaecho --help
dan/bin/echo --help
.:-)
.help
bukanman
. (Tidak terlalu benar karena Anda menemukannyaman bash
di bab SHELL BUILTIN PERINTAH atau langsung denganman BASH-BUILTINS
...). Sangat nyaman bahwa di bawah shell bash Anda hanya bisa memintahelp
dan Anda akan menerima daftar built-in command:-)
. (Cobahelp help
danman man
juga).Saya baru-baru ini ingin sepenuhnya menghapus
nvm
dan menginstalnya kembali, dan menyingkirkan lingkungannya. Ternyata menyingkirkan itu sepertinya tidak banyak karenanvm
sebagian diimplementasikan sebagai sejumlah muatan fungsi shell yang bersumber ke dalam shell Anda melalui.bash_profile
atau.bashrc
, atau di mana pun Anda menambahkan perintah-perintah sumber yang diperintahkan kepada Anda saat pertama kali menginstalnya.Bingung pada awalnya dengan
which nvm
tidak mengembalikan apa pun dengan jelasnvm
perintah dan yang lain masih ditemukan, saya akhirnya menemukandeclare -F
bahwa itu adalah sekelompok fungsi shell. Saya tidak ingin hanya membunuh shell dan memulai yang baru (karena alasan yang tidak relevan di sini), jadi saya membersihkannvm
fungsi dari shell itu dengan ini:Beberapa variasi yang mungkin bermanfaat bagi seseorang di luar sana yang karena alasan apa pun ingin melakukan sesuatu yang serupa dan tidak dapat memulai kembali shell baru atau tidak mau.
sumber