在Bash中将df-h的输出转换为数组

在Bash中将df-h的输出转换为数组,bash,shell,Bash,Shell,我正在尝试做一件非常基本的事情,我认为我应该能够自己管理所有的事情,但是唉 我试图做的是获取“df-h”返回的值,并能够将这些值存储在bash脚本数组中。目的是将其与其他数据(如当前时间戳)组合,并将其输出到新文件/覆盖现有文件 以下两个命令在命令行中给出了我想要的内容,但我无法将输出加载到可以迭代的数组中 下面给出了每个磁盘的磁盘利用率百分比: df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print +$5 }' 下面给出了磁盘路径:

我正在尝试做一件非常基本的事情,我认为我应该能够自己管理所有的事情,但是唉

我试图做的是获取“df-h”返回的值,并能够将这些值存储在bash脚本数组中。目的是将其与其他数据(如当前时间戳)组合,并将其输出到新文件/覆盖现有文件

以下两个命令在命令行中给出了我想要的内容,但我无法将输出加载到可以迭代的数组中

下面给出了每个磁盘的磁盘利用率百分比:

df -h | grep -vE "^Filesystem|shm|boot" |  awk '{ print +$5 }'
下面给出了磁盘路径:

df -h | grep -vE "^Filesystem|shm|boot" |  awk '{ print $6 }'
但是,我无法将此命令的输出分配到shell脚本中可以迭代的变量中


任何想法和帮助都将不胜感激

您可以将输出分配给如下数组:

arr=(`df -h | grep -vE "^Filesystem|shm|boot" |  awk '{ print +$5 }'`)
for var in "${arr[@]}"
do
    # things
done
然后您可以对其进行迭代,例如:

arr=(`df -h | grep -vE "^Filesystem|shm|boot" |  awk '{ print +$5 }'`)
for var in "${arr[@]}"
do
    # things
done
你可以用这个

#!/bin/bash

arr=(`df -h | grep -vE "^Filesystem|shm|boot" |  awk '{ print +$5 }'`)
for v in "${arr[@]}"
do
    echo $v
done
(注意:仅适用于bash,而不适用于/bin/sh)