Como usar o Bash IMPORTFUNCTIONS no FreeBSD?

0

Estou recebendo muitos erros no FreeBSD 10.1 amd64 porque eu uso o Bash e meu .bash_profile exporta algumas funções. Quando eu tento rodar um script de teste no FreeBSD, isso resulta em:

$ ./cryptest.sh 
bash: Skipping importing function definition for 'sh_perms': --import-functions required.
bash: Skipping importing function definition for 'sh_gclean': --import-functions required.
...
make: environment corrupt; missing value for BASH_FUNC_sh_clean
make: environment corrupt; missing value for BASH_FUNC_sh_clean
make: environment corrupt; missing value for BASH_FUNC_sh_clean
...

Eu não estou encontrando muita informação, mas eu encontrei menção de IMPORTFUNCTIONS na página do Bash do FreeBSD :

The default can also be changed in the port by selecting the IMPORTFUNCTIONS option ...

Eu adicionei o seguinte a .bash_profile , desconectei, fiz logon novamente (e até mesmo source'd .bash_profile ), mas o problema persiste:

IS_FREEBSD=$(uname -s | grep -i -c freebsd)

if [[ ("$IS_FREEBSD" -ne "0") ]]; then
    export IMPORTFUNCTIONS=y
fi

Eu sei que o FreeBSD CVE está remediando, mas eu realmente não me importo com isso. Eu não sou um administrador do FreeBSD, e eu me encolho pensando que vou precisar de uma semana tentando consertar isso procurando informações. Eu só ligo e faço o login nesta máquina algumas vezes por ano para testar algum software, então eu preciso que a máquina funcione.

Como consertar o shell para funcionar como esperado?

Aqui está um exemplo de uma função; e não há muito para isso. Ele me permite rapidamente redefinir uma filial em um repositório do Git e atualizá-lo em um comando. Eu os uso porque o Git tem uma propensão a aceitar fluxos de trabalho simples, complicando-os ou tornando-os difíceis de serem impossíveis (você deve ver como é difícil excluir um ramo de desenvolvimento).

function sh_gpull {
    if [[ (-z $(git rev-parse HEAD 2>/dev/null)) ]]; then
        echo "$PWD is not a Git repository"
        [[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1
    fi

    echo "Branch:" $(git rev-parse --abbrev-ref HEAD 2>/dev/null)
    git reset --hard HEAD 2>/dev/null
    git pull

    [[ "$0" = "$BASH_SOURCE" ]] && exit 0 || return 0
}

...
export -f sh_gpull ...
    
por jww 09.09.2016 / 23:32

0 respostas

Tags