O que é o arquivo de configuração para o shell sh no OS X? (ou seja, ~ / .bash_profile para shell bash, etc)

0

R usa o ambiente /bin/sh shell e estou executando scripts (que não podem ser modificados) que chamam gfortran-4.8 em vez de gfortran , portanto estou criando um alias . Eu adicionei a seguinte linha ao meu /etc/profile e ~/.bash_profile :% alias gfortran-4.8='gfortran'

No entanto, aqui está a saída do Terminal ao chamar o alias gfortran-4.8 :

my-MBP:~ myusername$ sh
sh-3.2$ gfortran-4.8 --version
sh: gfortran-4.8: command not found

Chamar gfortran funciona muito bem:

sh-3.2$ gfortran --version
gfortran: warning: couldn’t understand kern.osversion ‘14.4.0
GNU Fortran (GCC) 4.9.0
Copyright (C) 2014 Free Software Foundation, Inc.

Se não for /etc/profile ou ~/.bash_profile , para onde deve ir o comando alias ?

EDIT: Também tentei adicionar o alias a ~/.bashrc , mas isso também não funcionou.

    
por Bubbles 07.07.2015 / 22:35

3 respostas

1

Quando você iniciar o bash com sh (por exemplo, se /bin/sh for um link simbólico para bash ), o shell só lerá /etc/profile e ~/.profile . O shell não irá ler ~/.bash_profile ou ~/.bashrc .

Procure a frase "invocada com o nome sh" na sua página de manual bash.

    
por 08.07.2015 / 00:34
1

Quando o bash é invocado como */sh , apenas /etc/profile e ${HOME}/.profile são lidos.

Eu tenho estas linhas no meu .profile (usando o OS X):

if [ -n "${BASH_VERSION}" ]; then
    # include ~/.bashrc if it exists
    if [ -f "${HOME}/.bashrc" ]; then
        . "${HOME}/.bashrc"
    fi
fi

Meu .bashrc contém (entre outras coisas) estas linhas:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

Agora basta criar um arquivo .bash_aliases com todos os seus aliases.

    
por 08.07.2015 / 22:07
0

normalmente é mais simples colocar todos os aliases e personalizações no shell em ~/.bashrc e, em seguida, ter seu ~/.bash_profile source nesse arquivo, ou seja, source .bashrc , mas se você fizer alterações de alias no ~/.bashrc elas não serão tenha efeito até recarregar o seu shell ou fonte você é ~/.bashrc file.

    
por 08.07.2015 / 21:36