我使用modules来控制我系统上的软件包,并将python / 2.7.2作为模块安装.我有一个简单的python可执行文件python_exe.py,我将从一个简单的’驱动’脚本runit.sh调用它. runit.sh脚本看起来像:
#!/bin/bash
module load python/2.7.2
arg1=myarg1
arg2=15
arg3=$5
/path/to/python_exe.py -a $arg1 -b $arg2 -c $arg3
但是,当我刚刚运行./runit.sh时,它卖给我“module:command not found”.但是,当我获取runit.sh时,它会正确加载模块.为什么是这样?
解决方法:
因为module命令是别名或shell函数
(参见“包初始化”)
module(1)).
当你说source runit.sh时,就像输入module命令一样
直接进入你的交互式shell.
但是当你说./runit.sh时,你正在运行一个新的非交互式shell.
非交互式shell
通常没有设置标准别名和shell函数.
module(1)说,
“模块包和模块命令已初始化
当一个特定于shell的初始化脚本被引入shell时.
该脚本创建模块命令,
无论是作为别名还是shell函数,……“
如果需要在脚本中运行module命令,
找到定义模块命令的初始化脚本
并从脚本中获取它.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。