Adicione unset -f fun1 fun2
no final do script.
A função -f
spesifies, como unset
, pode cancelar a configuração de ambas as funções e variáveis.
Estou escrevendo um script simples script.bash
que deve exportar algumas variáveis do ambiente, para usá-lo na minha sessão atual eu tenho que fonte
$ . script.bash
script.bash
function fun1() {
# TODO
}
function fun2() {
# TODO
}
function main_script() {
# ...
# ...
fun1 # calling fun1
# ...
func2 $ 1 $2 # calling fun2
# ...
}
para usar script.bash
, chame a função main_script
.
Pergunta :
fun1
e fun2
e impedir que eles sejam chamados de fora de script.bash
. Adicione unset -f fun1 fun2
no final do script.
A função -f
spesifies, como unset
, pode cancelar a configuração de ambas as funções e variáveis.
Script:
unset my_protected_function
function my_protected_function() {
echo "function executed"
}
[ "$0" != "/bin/bash" ] && unset my_protected_function
my_protected_function
Quando você o executa diretamente, parece não ter função
$ ./test.sh
./test.sh: line 15: my_protected_function: command not found
Quando você faz a sua fonte:
$ source ./test.sh
function executed
Isso que você tinha em mente?
você pode manipular o nome da função e, em seguida, usar 'alias' / 'unalias' para vinculá-lo a um nome legível quando você quiser usá-lo.