R использует оболочку /bin/sh и я запускаю сценарии (которые нельзя изменить), которые вызывают gfortran-4.8 вместо gfortran поэтому я создаю alias . Я добавил следующую строку в мой /etc/profile и ~/.bash_profile:
alias gfortran-4.8='gfortran'

Тем не менее, вот вывод из терминала при вызове псевдонима gfortran-4.8:

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

Вызов gfortran работает просто отлично:

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.

Если нет /etc/profile или ~/.bash_profile , куда должна идти команда alias ?

РЕДАКТИРОВАТЬ: Также попытался добавить псевдоним в ~/.bashrc но это тоже не сработало.

3 ответа3

1

Когда вы запускаете bash с помощью sh (например, если /bin/sh является символической ссылкой на bash), оболочка будет читать только /etc/profile и ~/.profile . Оболочка не будет читать ~/.bash_profile или ~/.bashrc .

Ищите фразу "вызвано с именем sh" на вашей странице руководства bash.

1

Когда bash вызывается как */sh , читаются только /etc/profile и ${HOME}/.profile .

У меня есть эти строки в моем .profile (с использованием OS X):

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

Мой .bashrc содержит (среди прочего) эти строки:

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

Теперь просто создайте файл .bash_aliases со всеми вашими псевдонимами.

0

обычно проще просто поместить все псевдонимы и настройки в оболочку в ~/.bashrc а затем поместить в этот файл свой исходный файл ~/.bash_profile , т.е. исходный файл source .bashrc но если вы сделаете изменения псевдонима в ~/.bashrc они не будут Действуйте до тех пор, пока не перезагрузите свою оболочку или исходный файл ~/.bashrc .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .