【发布时间】:2020-02-28 05:51:17
【问题描述】:
我正在尝试将 Linux 文件系统类型分配给一个变量。
我的命令df -Th | grep "^/dev" 的输出
如下:
/dev/mapper/rhel-root xfs 50G 11G 40G 22% /
/dev/mapper/rhel-home xfs 53G 569M 53G 2% /home
/dev/sdb1 xfs 1014M 192M 823M 19% /boot
/dev/sdc1 vfat 7.6G 7.4G 125M 99% /run/media/root/RHEL-8-1-0-
我的解决方案是将其传递给 awk 语句以返回 rhel-root 的类型,但是我没有得到任何输出。
var=$(awk '{
if($1 == "/dev/mapper/rhel-root"){
print $2;
}
}' | df -Th | grep "^/dev")
如何将文件类型 (xfs) 分配给变量?
【问题讨论】:
-
使用
var=$(df ... | grep ... | awk ...),我建议在df命令中添加选项-P。 -
@Cyrus 的意思是,在将输出提供给
awk之前,您需要使用df和grep生成数据,因此awk需要在管道中排在最后,不是第一个。奇怪的是你没有得到输出——你应该得到所有显示为变量中df … | grep …输出的文本。df不读取标准输入。我想 bash 可能会挂断等待awk终止——它正在尝试读取标准输入。你必须中断代码吗?我做到了!
标签: linux bash file filesystems