考虑以下:
$ module cmdModule.c(166):ERROR:11: Usage is 'module command [arguments ...] ' Modules Release 3.2.6 2007-02-14 (Copyright GNU GPL v2 1991): Usage: module [ switches ] [ subcommand ] [subcommand-args ] Switches: (...omissis...) $ which module no module in (...long list of my path) $ alias alias cp='cp -i' alias h='history | grep ' alias ls='/usr/local/bin/ls --color=always' alias mv='mv -i' alias rm='rm -i' alias vi='vim' $
显然,模块命令在那里,可以执行,但我找不到(很容易)。 挖一点点,我发现它在系统上,我注意到这是一个别名
bin/modulecmd $SHELL
在模块安装path中。
但为什么它不出现在别名列表中,为什么 – 即使它没有出现 – 它的工作?
编辑 :我不知道是否有一些棘手的事情正在做别名。 尝试这个:
alias|hd
编辑2:
我build议上述的原因是可以隐藏别名。 有关详细信息,请参阅我的问题和答案。
原始答案:
尝试type -a module
更全面的type -a module
。
另外,如果它是一个函数,你可以看到它的定义使用这个:
declare -f module
你需要grep
这些文件,加上它们的源代码,以及我遗漏的任何东西,find它的定义:
这是一个function。
它来自这里 。 pipe理环境variables非常方便。