【发布时间】:2018-07-11 08:02:48
【问题描述】:
我正在做一个需要使用 OpenMPI 来使“mpicc”工作的小项目。 我做了一个文件make_cmd:
#!/bin/bash
module load OpenMPI
但是,在执行 ./make_cmd 之后,我被告知:
mpicc:找不到命令
但是如果我只是在命令行上输入:module load OpenMPI,那么 mpicc 就可以工作了。
这是为什么呢?谢谢!
【问题讨论】:
我正在做一个需要使用 OpenMPI 来使“mpicc”工作的小项目。 我做了一个文件make_cmd:
#!/bin/bash
module load OpenMPI
但是,在执行 ./make_cmd 之后,我被告知:
mpicc:找不到命令
但是如果我只是在命令行上输入:module load OpenMPI,那么 mpicc 就可以工作了。
这是为什么呢?谢谢!
【问题讨论】:
请参阅邻近站点上的this answer。
因为module 是一个别名/shell 函数而不是二进制程序,所以它不一定在您运行脚本时创建的非交互式子shell 中可用。不过,您可能可以运行 source make_cmd,因为它只会在您当前的交互式 shell 中运行命令。在这种情况下,您可以放弃 #!/bin/bash 行。
【讨论】: