Compartilhe as suas alias e funções - facilitando o dia a dia

Uma outra opção em vez do unset: quando tenho funções com variáveis que posso descartar imediatamente, eu utilizo a sintaxe funcao() ( comando1; comando2; ) que é inclusive prevista na POSIX (suportada também por shells mais simples como dash, mksh, etc.). Ela roda o código da função num shell paralelo, sem mexer no que está rodando atualmente.

No tópico que eu fiz com o mesmo propósito, você vê que todas as minhas funções que mexem com variáveis são “insuladas” assim.

cppwr() ( # em vez de {
# ...
GOV=$(LC_ALL=C cpupower frequency-info -p | grep -o '"[a-z]\+"' | tr -d '"') # Essa variável está sendo definida num "shell paralelo", não vai afetar o shell principal
#...
) # em vez de }

Outra opção é usar local variavel no começo da função, para o shell entender que a variável é específica daquele bloco (alguns shells mais minimalistas não sabem mexer com isso, no entanto):

lsau() {
    local hmsg="\n '$@'" #...
    #...
}

ou

lsau() {
    local hmsg
    hmsg="Ajuda:"
    #...
}

Nem é necessário o monte de dígitos para não confundir acidentalmente com outra variável que o usuário/outra função talvez já esteja usando.

3 curtidas