R
使用/bin/sh
shell 环境,并且我正在运行调用的脚本(无法修改),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
但是也不起作用。
答案1
当您使用 as 启动 bash 时sh
(例如,如果/bin/sh
是 的符号链接bash
),则 shell 将仅读取/etc/profile
和~/.profile
。shell将不会阅读~/.bash_profile
或~/.bashrc
。
在 bash 手册页中搜索短语“使用名称 sh 调用”。
答案2
当 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
包含所有别名的文件。
答案3
~/.bashrc
通常,将所有别名和自定义放入 shell 中,然后将~/.bash_profile
源文件放入其中,这样更简单,source .bashrc
但是,如果您在文件中进行了别名更改,则~/.bashrc
它们将不会生效,直到您重新加载 shell 或源文件~/.bashrc
。