Nos scripts bash, tento manter minhas variáveis locais para funções sempre que possível e depois passar o que preciso para funções como abaixo
#!/bin/bash
function FUNCTION() {
local LOCAL="value"
echo "$LOCAL" # return this variable
}
GLOBAL=$(FUNCTION)
echo "$GLOBAL"
Mas é possível fazer isso incluindo os ecos da própria função, para que, se a função tiver suas próprias mensagens para saída, não seja necessário capturá-las em uma variável
#!/bin/bash
function FUNCTION() {
local LOCAL="value"
echo "$LOCAL" # return this variable
echo "This function is done now" # do not return this variable
}
GLOBAL=$(FUNCTION)
echo "$GLOBAL" # should only echo 'value'
function foo()
sintaxe antiga, não POSIX ? Você pode obter uma melhor compatibilidade com POSIX com menos 9 toques de teclas.