繁体   English   中英

Bash 别名:找不到命令

[英]Bash alias: command not found

我正在尝试设置一个简单的别名以将我移动到我机器上的 Developer 文件夹中。 但是,在设置之后,我得到了一个奇怪的错误:

-bash: dv: command not found

我在 .bashrc 中设置了我的别名,如下所示:

alias dv='cd Developer/'

我通过键入dv来使用它,然后得到那个错误。 有没有人看到任何语法错误或我在这里遗漏的别名?

运行bash ,然后尝试该命令。

或者,将它放在应该自动加载的~/.bash_profile中。

.bashrc仅在启动时读取。 如果您刚刚修改了.bashrc那么您需要获取一个新的shell或获取当前的shell以查看所应用的更改:

  • 当前shell中的source ~/.bashrc (虽然这可能导致一些启动项运行两次,这可能会导致其他问题)
  • exec bash获得一个新的shell
  • 只需打开一个新的终端窗口

确保.bash_profile包含以下行

test -f ~/.bashrc && . ~/.bashrc

如果没有,那么将其添加到开头。 .bash_profile使用此代码加载.bashrc 如果.bash_profile没有此行,则不会加载您在.bashrc键入的任何内容。

来自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

错误:

-bash:别名:cd / opt / logs:not found alias log =“cd / opt / logs”

方案:

确保=符号后没有空格

log="cd**  /opt/logs"

另一个解决方案是使用-i -c选项使用bash调用您的命令:

bash -i -c my_alias

我有同样的问题,但最奇怪的解决方案。 我正在将它从 Windows 机器复制到 OS X,由于某种原因,使用的空间不同,当我用普通空间替换它们时,它起作用了。 这不是标签,我不知道它是什么。

我在为 mongoDB 创建别名时遇到了类似的问题; 您可以尝试将整个路径 inside.bash_profile 放在您的主目录中,如下所示:

alias mongo="/c/Program\ Files/MongoDB/Server/5.0/bin/mongo.exe",

正如我在我的案例中所做的那样; 在此之后它工作得很好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM