我经常需要创建包含命令module load
的Linux 脚本。有没有办法在执行命令module unload
之前测试模块是否已经加载?module unload
我需要这样做的原因是,如果我有一个module unload
命令并且有问题的模块尚未加载,那么它将导致错误消息。我想通过测试已经加载的模块来避免这些错误消息,并且只有在这种情况下才卸载它。
我经常需要创建包含命令module load
的Linux 脚本。有没有办法在执行命令module unload
之前测试模块是否已经加载?module unload
我需要这样做的原因是,如果我有一个module unload
命令并且有问题的模块尚未加载,那么它将导致错误消息。我想通过测试已经加载的模块来避免这些错误消息,并且只有在这种情况下才卸载它。
该命令的最新版本module
(4+)有一个名为的新子命令is-loaded
,无论给定模块是否已加载,它都会返回 true 或 false。
因此,要有条件地从 shell 会话中卸载模块,您可以键入:
module is-loaded $MODULENAME && module unload $MODULENAME
假设问题与 Linux 模块无关,而是与此软件有关:https ://modules.readthedocs.io/en/stable/module.html
该grep
模式假定模块名称是module list
输出的第一个单词。当缺少的信息添加到问题中时,这将得到修复。
# example for unloading
MODULENAME=foobar
module list | grep -qw "^$MODULENAME" && module unload "$MODULENAME"
# example for loading
MODULENAME=foobar
module list | grep -qw "^$MODULENAME" || module load "$MODULENAME"