【问题标题】:linux .profile script - error with module load followed by echolinux .profile 脚本 - 模块加载错误,后跟 echo
【发布时间】:2015-04-07 07:38:50
【问题描述】:

所以我对 linux 脚本非常陌生。在 .profile 中,我只想加载一个模块,然后打印出一条消息以提醒我它已加载,但是当我按该顺序执行时遇到错误。

当我有它时它工作正常:

echo "正在加载 oracle/muscle..." 模块加载 oracle/muscle

(这就是我在 .profile 中的全部内容)

我更喜欢:

模块加载 oracle/muscle echo "oracle/muscle load"

但是当我这样做并登录时,我收到一条错误消息,“无法找到 oracle/muscle 的模块文件”。我想它是某种语法错误,但我找不到任何真正描述这种错误的东西。任何帮助将非常感激。谢谢!!

【问题讨论】:

    标签: linux environment-modules


    【解决方案1】:

    你确定那部分工作正常吗:

    echo "loading oracle/muscle..." module load oracle/muscle
    

    ??

    我认为您应该将命令“echo”与“module”分开。我测试了你的配置(Debian 6,我使用“modprobe”而不是“模块加载”):

    root@ian:~# lsmod | grep loop
    root@ian:~#
    root@ian:~# grep modprobe .profile
    echo "Loading loop" modprobe loop
    root@ian:~# source .profile
    Loading loop modprobe loop
    root@ian:~# lsmod | grep loop
    root@ian:~#
    

    以上模块循环尚未加载。恕我直言,它应该看起来像这样:

    root@ian:~# grep modprobe .profile
    echo "Loading loop"; modprobe loop
    root@ian:~# lsmod | grep loop
    root@ian:~# source .profile
    Loading loop
    root@ian:~# lsmod | grep loop
    loop                    9745  0
    root@ian:~#
    

    另外,在模块成功结束时打印“echo”会更好:

    module load oracle/muscle && echo "Module loaded"
    

    请测试并告诉我们结果

    【讨论】:

    • 对不起,我花了这么长时间才回复......我想我正在寻找的是 linux 脚本在基本层面上的工作方式。例如我的初始脚本: echo "loading..." module load oracle/muscle 确实分为两行(有效),但在同一行时不起作用。然后你修复(使用&&)在一行上工作,而不是在两行上
    【解决方案2】:

    您得到的“无法找到 oracle/muscle 的模块文件”错误是因为 module 无法在当前启用的模块路径中找到名为 oracle/muscle 的模块文件。

    您应该在使用use 子命令加载它之前启用包含oracle/muscle 模块文件的模块路径:

    module use /path/to/modulefiles
    module load oracle/muscle
    

    【讨论】:

      猜你喜欢
      • 2019-10-31
      • 2015-09-11
      • 2022-06-25
      • 1970-01-01
      • 2019-10-31
      • 2022-12-01
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      相关资源
      最近更新 更多