İşte kalıcı bir işlevi bildirmek için gerekli bir prosedür:
Açık ~/.bashrc
bir metin editörü dosyası. Nasıl kullanacağınızı bildiğiniz sürece ve açtığınız sürece hangi metin düzenleyicisinin önemi yoktur/home/<username>/.bashrc
Deklarasyonun sonunda ~/.bashrc
kendi işlevinizi beyan edin, örneğin:
find_dirs(){
find "$1" -type d
}
Dosyayı kaydedip kapatın.
~/.bashrc
Dosya (Yeni terminal sekme, giriş yoluyladır interaktif kabuğu her açtığınızda okumak olduğunu ssh
ya da açık tty1 veya diğer sanal konsol). ~/.bashrc
Etkileşimli olmayan kabuklar için okunmadığından , komut dosyası dosyalarında bu kullanılamaz . Seçeneği bash
ile çalıştırırsanız da kullanılamaz --norc
.
İşlevin şu anda açık olan sekmede hemen kullanılabilir olmasını istiyorsanız, source ~/.bashrc
komutunu kullanın.
İşlevler, normal komutlar gibi argümanlar alır. Örneğin, $1
yoluyla $9
bir işlevi çağırdığınızda konumsal parametreleri belirtin. Yukarıdaki örnekte find_dirs
yalnızca bir konum parametresi alınır ve olarak adlandırılır find_dirs /etc
. $@
Tüm konumsal parametrelere başvurmak için de kullanabilirsiniz . İşlevler de yeniden yönlendirmeyi kabul eder. find_dirs $1 > /dev/null
; İle bir işlevi çağırabilirsiniz . biz de aşağıdaki gibi ilan edebilir:
find_dirs(){
find "$1" -type d
}
Not man bash
: "İşlevler geçerli kabuk bağlamında yürütülür; bunları yorumlamak için yeni bir işlem oluşturulmaz". Bu, kabuk yürütme ortamınızı değiştirme yeteneğine sahip işlevlerin de farkında olmanız gerektiği anlamına gelir - değişkenleri ve terminal ayarlarını değiştirin.