Yerel işlemin 'kapsamında' görünecek işlevi tanımlamanız gerekir.
Komut satırına bir işlev girdiğinizde, artık terminal kabuğunun bash'ın kopyası içinde 'yaşıyor'. Bir komut dosyası başlattığınızda
, export
ile işaretlenmiştir sadece değişkenler terminalinin bir çocuk olarak çalışan Bash yeni kopyanın içine görebilir. (Şu anda export
'a girmeyeceğiz ;-).
Komut dosyanızın içindeki işlevi almak için, komut dosyasının içinde tanımlamanız gerekir.
cat a.bash
#!/bin/bash
function showxx() { echo xx; }
showxx
VEYA o yani
cat showxx.bfn
function showxx() { echo xx; }
cat a.bash
. showxx.bfn
showxx
, dosya içindeki uzantısı sanki bunu ayrı bir dosya ve (ile '') 'kaynak' İşlevin, bu yüzden olabilir. bfn, bfn = 'bash function' gibi dosyanın içinde ne olduğunu belgelemek için kullandığım bir şey.
'.' kaynak komuttur.
Umarım bu yardımcı olur.
P.S. yeni bir kullanıcı gibi göründüğü gibi, size yardımcı olacak bir yanıt alırsanız, bunu kabul edildi olarak işaretlemeyi unutmayın ve/veya yararlı bir cevap olarak bir + (veya -) verin.
Bu, istediğim tam olarak ne sayesindedir. –
+1 to @evilotto: 'ihracat -f' hakkında bilmiyordum. Teşekkürler! – shellter