为什么bash shell在执行后没有任何区别?

时间:2018-02-01 04:15:43

标签: bash shell openmpi

我正在开展一个小项目,需要使用OpenMPI来制作" mpicc"工作。 我创建了一个文件make_cmd:

#!/bin/bash

module load OpenMPI

然而,在执行./make_cmd之后,我被告知:

  

mpicc:找不到命令

但是如果我只是在命令行输入:module load OpenMPI,那么mpicc正在工作。

为什么?谢谢!

1 个答案:

答案 0 :(得分:1)

请参阅邻近网站上的this answer

因为module是别名/ shell函数而不是二进制程序,所以在运行脚本时创建的非交互式子shell中不一定可用。{p}。你可以运行source make_cmd,因为这只会运行当前交互式shell中的命令。在这种情况下,您可以放弃#!/bin/bash行。