Назад | Перейти на главную страницу

откуда берется «модуль» команды - иначе, почему он не отображается в псевдониме?

Учтите следующее:

$ 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

в пути установки модуля.

Но почему его нет в списке псевдонимов и почему - даже если он не появляется - он работает?

редактировать: Интересно, не делается ли что-то хитрое в псевдониме. Попробуй это:

alias|hd

Изменить 2:

Причина, по которой я предложил это выше, заключается в том, что можно скрыть псевдонимы. Смотрите мой вопрос и ответ Вот для подробностей.


Оригинальный ответ:

Пытаться type -a module он более всеобъемлющий.

Кроме того, если это функция, вы можете увидеть ее определение, используя следующее:

declare -f module

и вам нужно будет grep эти файлы, плюс все, что они исходят, плюс все, что я пропустил, чтобы найти, где он определен:

  • / etc / profile
  • /etc/bash.bashrc
  • ~ / .profile
  • ~ / .bashrc
  • ~ / .bash_profile
  • ~ / .bash_login

Это функция.

И это происходит от Вот. Управлять переменными окружения довольно удобно.