source some_file
some_file:
doit ()
{
echo doit $1
}
export TEST=true
Some_file kaynağını kullanırsam "doit" işlevi ve TEST değişkeni komut satırında bulunur. Ancak bu komut dosyasını çalıştırıyorum:
script.sh:
#/bin/sh
echo $TEST
doit test2
TEST değerini döndürecek, ancak bilinmeyen "doit" işlevi hakkında bir hata üretecektir.
İşlevi de "dışa aktarabilir miyim" veya işlevi kullanmak için script.sh dosyasındaki some_file kaynağını sağlamam gerekir mi?
#!/bin/sh
, ancak #!/bin/bash
varsayılan kabuk bash olmadığı zaman sorunlardan kaçınmak için kullanmak iyi bir uygulamadır .
#!/bin/sh
için#!/bin/bash
ve sonradoit() {...}
sadeceexport -f doit