我正在编写一个安装自动化 BASH 脚本。nvme-cli
仅当实际存在 NVMe SSD 时,我才想安装该软件包。我找不到一种简单的方法来查询硬件(例如,使用lshw
)来获得一种是或否的答案。你们中的任何人都可以提供一种从 BASH 脚本中提取特定答案的方法吗?我想使用case
空调来安装或不安装它。
我正在编写一个安装自动化 BASH 脚本。nvme-cli
仅当实际存在 NVMe SSD 时,我才想安装该软件包。我找不到一种简单的方法来查询硬件(例如,使用lshw
)来获得一种是或否的答案。你们中的任何人都可以提供一种从 BASH 脚本中提取特定答案的方法吗?我想使用case
空调来安装或不安装它。
目录测试就足够
了:(路径
/sys/class/nvme
是由模块创建的nvme
。但是,这并没有说明驱动器的操作状态,或者即使驱动器存在)。或者,如果您更喜欢使用 globbing 来检查文件是否存在,
for
-loop 将具有避免子 shell 的优势:此外,如果可以的话,您应该避免使用通配符作为参数,因为有替代方案,例如,在这种情况下,使用
echo
orprintf
是更可取的(实际上,这是一个循环构造)。检查是否存在任何 nvme 设备文件:
所有这些解决方案都应该大致相同;他们都在测试内核是否以任何方式找到了 NVME 设备。
如果安装程序在引导时运行,这可能就足够了。如果安装程序可能在启动后运行很长时间,那么第一行会更好:
尝试使用 lsscsi:
检查nvme驱动是否加载
在某些情况下,可用空间是一个问题,此外,我坚信不安装冗余打包作为一项规则,所以,最终我选择了:
谢谢!