我正在尝试设置一个简单的别名,将我移动到我的机器上的Developer文件夹。然而,在设置之后,我会出现一个奇怪的错误:
-bash: dv: command not found
我在 .bashrc 中设置了我的别名,如下所示:
alias dv='cd Developer/'
我只需输入dv
,就会出现这个错误。是否有人能看到别名中是否有语法错误或遗漏的东西?
运行 bash
,然后尝试该命令。
或者将其放置在 ~/.bash_profile
中,这样应该会自动加载。
.profile
和.bashrc
只在启动 shell 时加载。 - nneonneoexec bash
命令来替换旧的 bash 实例为新的实例(需要注意这会清除该 shell 中的其他本地状态,如变量、定义的函数等),或者使用 source ~/.bashrc
命令在现有的 shell 中运行所有在 ~/.bashrc 文件中的命令。 - Charles Duffy.bash_profile
中设置,而不是.bashrc
中设置。.bashrc
被任何(非登录)交互式shell调用;可以合理地预期,bash
可能会在现有的bash
会话中执行。 - chepner.bashrc
只在启动时读取。如果你刚修改了你的.bashrc
,那么你需要获取一个新的Shell或使你当前的Shell看到应用的变化:
source ~/.bashrc
命令(虽然这可能会导致某些启动项运行两次,从而可能引起其他问题)exec bash
获取一个新的Shell[[ -f ~/.bashrc ]] && . ~/.bashrc
。 - glenn jackman错误:
-bash: alias: cd /opt/logs: 未找到 alias log="cd /opt/logs"
解决方案:
确保等号符号后面没有空格。
log="cd** /opt/logs"
来自man bash
:
Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is
set using shopt (see the description of shopt under SHELL BUILTIN COMMANDS below).
如果您想在脚本中使用别名,请在脚本文件中添加以下行:
shopt -s expand_aliases
另一种解决方案是使用-i -c选项调用bash来执行您的命令:
bash -i -c my_alias
.bash_profile
中:
test -f ~/.bashrc && . ~/.bashrc
如果不存在,请将其添加到开头。这段代码用于加载.bashrc
,被.bash_profile
使用。
如果这行代码不在.bash_profile
中,那么您在.bashrc
中输入的任何内容都不会被加载。我遇到了同样的问题,但解决方式很奇怪。我将它从Windows机器复制到OS X上,由于某种原因使用的空格不同,当我用普通空格替换它们时,就解决了。并不是制表符,我不知道它是什么。
alias mongo="/c/Program\ Files/MongoDB/Server/5.0/bin/mongo.exe",
就像我自己的情况一样; 在此之后它完美地运行了。
.bashrc
文件吗?在我的电脑上,.bashrc
文件会被忽略,而是使用.profile
文件。 - nneonneo.bash_profile
中。编辑:这正是我想要的,如果您将评论移到答案中,我会接受它,谢谢! - Bill Lbash
会话中启动的。 - chepner