관리-도구
편집 파일: bash
unset _mlshdbg; # disable shell debugging for the run of this init file if [ "${MODULES_SILENT_SHELL_DEBUG:-0}" = '1' ]; then # immediately disable debugging to echo the less number of line possible case "$-" in *v*x*) set +vx; _mlshdbg='vx' ;; *v*) set +v; _mlshdbg='v' ;; *x*) set +x; _mlshdbg='x' ;; *) _mlshdbg='' ;; esac; fi; # define modules runtine quarantine configuration export MODULES_RUN_QUARANTINE='LD_LIBRARY_PATH LD_PRELOAD' # setup quarantine if defined unset _mlre _mlIFS; if [ -n "${IFS+x}" ]; then _mlIFS=$IFS; fi; IFS=' '; for _mlv in ${MODULES_RUN_QUARANTINE:-}; do if [ "${_mlv}" = "${_mlv##*[!A-Za-z0-9_]}" -a "${_mlv}" = "${_mlv#[0-9]}" ]; then if [ -n "`eval 'echo ${'$_mlv'+x}'`" ]; then _mlre="${_mlre:-}${_mlv}_modquar='`eval 'echo ${'$_mlv'}'`' "; fi; _mlrv="MODULES_RUNENV_${_mlv}"; _mlre="${_mlre:-}${_mlv}='`eval 'echo ${'$_mlrv':-}'`' "; fi; done; if [ -n "${_mlre:-}" ]; then _mlre="eval ${_mlre}"; fi; # define module command and surrounding initial environment (default value # for MODULESHOME, MODULEPATH, LOADEDMODULES and parse of init config files) _mlcode=`${_mlre:-}/usr/bin/tclsh /usr/share/Modules/libexec/modulecmd.tcl bash autoinit` _mlret=$? # clean temp variables used to setup quarantine if [ -n "${_mlIFS+x}" ]; then IFS=$_mlIFS; unset _mlIFS; else unset IFS; fi; unset _mlre _mlv _mlrv # no environment alteration if the above autoinit command failed if [ $_mlret -eq 0 ]; then eval "$_mlcode" # redefine module command if compat version has been activated if [ "${MODULES_USE_COMPAT_VERSION:-0}" = '1' ]; then MODULES_CMD=/usr/share/Modules/libexec/modulecmd-compat export MODULES_CMD if [ -t 2 ]; then _module_raw() { eval `/usr/share/Modules/libexec/modulecmd-compat bash $*`; } else module() { eval `/usr/share/Modules/libexec/modulecmd-compat bash $*`; } fi fi # export functions to get them defined in sub-shells if [ -t 2 ]; then export -f _module_raw fi export -f module if [ "$(type -t ml)" = 'function' ]; then export -f ml fi # define function to switch between C and Tcl versions of Modules switchml() { typeset swfound=1 if [ "${MODULES_USE_COMPAT_VERSION:-0}" = '1' ]; then typeset swname='main' if [ -e /usr/share/Modules/libexec/modulecmd.tcl ]; then typeset swfound=0 unset MODULES_USE_COMPAT_VERSION fi else typeset swname='compatibility' if [ -e /usr/share/Modules/libexec/modulecmd-compat ]; then typeset swfound=0 MODULES_USE_COMPAT_VERSION=1 export MODULES_USE_COMPAT_VERSION fi fi # switch version only if command found if [ $swfound -eq 0 ]; then echo "Switching to Modules $swname version" source /usr/share/Modules/init/bash else echo "Cannot switch to Modules $swname version, command not found" return 1 fi } export -f switchml # enable completion only in interactive mode if [ ${BASH_VERSINFO:-0} -ge 3 ] && [[ $- =~ i ]] && [ -r /usr/share/Modules/init/bash_completion ]; then source /usr/share/Modules/init/bash_completion fi if [[ ! ":$PATH:" =~ ':/usr/share/Modules/bin:' ]]; then PATH=/usr/share/Modules/bin${PATH:+:}$PATH export PATH fi # initialize MANPATH if not set with a value that preserves manpath system # configuration even after addition of paths to this variable by modulefiles if [ ! -n "${MANPATH+x}" ]; then MANPATH=: export MANPATH fi if [[ ! ":`manpath 2>/dev/null`:" =~ ':/usr/share/man:' ]]; then if [ "$MANPATH" = ':' ] || [ "$MANPATH" = '' ]; then _mlpathsep='' else _mlpathsep=: fi MANPATH=/usr/share/man$_mlpathsep$MANPATH export MANPATH unset _mlpathsep fi fi unset _mlcode _mlret # restore shell debugging options if disabled if [ -n "${_mlshdbg:-}" ]; then set -$_mlshdbg; unset _mlshdbg; fi;