Что такое файл конфигурации для оболочки sh на OS X? (т.е. ~ / .bash_profile для оболочки bash и т. д.)
1340
Bubbles
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но это тоже не сработало.
Какой у вас логин или ваша интерактивная оболочка? (возможно, узнайте с помощью `ps $$`) Если это `bash`, отредактируйте` ~ / .bashrc`
Basile Starynkevitch 9 лет назад
2
`ps $$` выводит `bash`, и я попытался отредактировать` ~ / .bashrc`, но это тоже не сработало
9 лет назад
0
** Отредактируйте свой вопрос **, чтобы улучшить его. Не комментируйте это.
Basile Starynkevitch 9 лет назад
0
1) добавить псевдоним в `~ / .bashrc` 2) включить его с помощью` source ~ / .bashrc` 3) попытаться вызвать псевдоним
Eugeniu Rosca 9 лет назад
2
Есть ли способ включить это при запуске оболочки `sh`? Хотя это работает в Терминале, оно не работает в `R` даже после выполнения` system ('source ~ / .bashrc') `. Для `R` по умолчанию требуется оболочка` sh`.
9 лет назад
0
Использование программы `R` и ограничение на` sh` являются ключевыми предпосылками для вашей проблемы, и они должны быть упомянуты в первой строке описания.
Eugeniu Rosca 9 лет назад
0
Возможно, вам следует рассмотреть возможность проверки некоторых конфигураций / настроек `.rprofile`, например, например [this] (http://www.r-bloggers.com/fun-with-rprofile-and-customizing-r-startup/)
Eugeniu Rosca 9 лет назад
0
3 ответа на вопрос
1
glenn jackman
When you start bash with as sh (for example, if /bin/sh is a symbolic link to bash), then the shell will only read /etc/profile and ~/.profile. The shell will not read ~/.bash_profile or ~/.bashrc.
Search for the phrase "invoked with the name sh" in your bash man page.
1
IvoryNomad
When bash is invoked as */sh, only /etc/profile and $/.profile are read.
I have these lines in my .profile (using OS X):
if [ -n "$" ]; then # include ~/.bashrc if it exists if [ -f "$/.bashrc" ]; then . "$/.bashrc" fi fi
My .bashrc contains (among other things) these lines:
if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
Now just create a .bash_aliases file with all your aliases in it.
0
johnsoga
it's usually simpler to just put all aliases and customizations to the shell into ~/.bashrc and then have your ~/.bash_profile source that file in it i.e. source .bashrc but if you make alias changes in your ~/.bashrc they will not take affect until you reload your shell or source you're ~/.bashrc file.