我写了以下命令:lsblk -nl /dev/sdd -o MOUNTPOINT | awk '{if (NR!=1 && $1) { print 1; } else { print 0; }}'
它应该检查给定设备的任何分区,在这种情况下/dev/sdd
,是否已安装。
但由于某种原因,脚本会同时打印 1 和 0?这有什么意义?
如果有挂载点,我需要此命令评估为 true,否则评估为 false,以便在我的 shellscript 中使用它。
我写了以下命令:lsblk -nl /dev/sdd -o MOUNTPOINT | awk '{if (NR!=1 && $1) { print 1; } else { print 0; }}'
它应该检查给定设备的任何分区,在这种情况下/dev/sdd
,是否已安装。
但由于某种原因,脚本会同时打印 1 和 0?这有什么意义?
如果有挂载点,我需要此命令评估为 true,否则评估为 false,以便在我的 shellscript 中使用它。
awk
将其代码作为循环运行在每个输入行上。对于每个非空行,您将获得 a1
或 a 。0
你可以如果要确定设备是否有任何已挂载的分区,请考虑使用以下方法:
如果你真的想保持这种
awk
方法,也许这就是你要找的。(我不完全确定您为什么要忽略第一行。在我的测试中,它似乎指的是整个设备,并且可能存在设备本身拥有文件系统的情况,因此我删除了跳过测试。)